Skip to content

Bump the dotnet-dependencies group with 11 updates - #9

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/hmailserver/source/Tools/ControlPanel/dotnet-dependencies-d83118d791
Open

Bump the dotnet-dependencies group with 11 updates#9
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/hmailserver/source/Tools/ControlPanel/dotnet-dependencies-d83118d791

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 17, 2026

Copy link
Copy Markdown

Updated LiveChartsCore.SkiaSharpView.WPF from 2.0.0-rc2 to 2.0.5.

Release notes

Sourced from LiveChartsCore.SkiaSharpView.WPF's releases.

2.0.4

The first weeks after 2.0.0 were focused on one thing: working through the issue backlog that built up during the long
beta / rc cycle. These four patch releases bring the project to its lowest open-issue count in years — more than 40
reported issues fixed across every supported platform, with no behavioral changes to the public API shipped in 2.0.0.

If you're on 2.0.0 you can drop 2.0.4 straight in: same APIs, same defaults, just fewer bugs.

Highlights:

  • Long-standing rendering fixes on Avalonia, WPF, WinUI, MAUI, Blazor, WinForms and Mac Catalyst — each platform had
    at least one pinned report cleared in this round.
  • A handful of chart-engine corrections that were hard to reach without the breadth of the 2.0 redesign:
    stacked-series z-index baseline, gauge tight-bounds collapse, axis pin preserved under zoom, null-gap line rendering
    on inserts/resize, mixed-sign stacking, a MinSeparators floor, granular pan/zoom flags, and runtime AnimationsSpeed
    propagation.
  • New cross-platform regression coverage in tests/SnapshotTests/ and tests/UITests/ (Factos) so the harder-to-test
    bugs — z-order, theme inheritance, pointer-capture loss, tab/scroll mount cycles — won't regress silently.

Fixes

Core / chart engine

  • #​1419 — Multi X-axis InLine axes overlap
  • #​1511 — HeatSeries fractional-step auto-sizing
  • #​1533 — Sections freeze on fast drag (Scaler infinity leak)
  • #​1576 — Lost-capture leaves drag armed (WPF / Avalonia / WinUI / Uno-Skia)
  • #​1826 — Null Labels crash & silent throttler swallow
  • #​1847 — NaN / Infinity handling (docs, recipes, snapshot tests)
  • #​1856 — Visual / VisualElement ZIndex honored
  • #​1923 — Stacked-series ZIndex baseline (replaces the 1000 - Position workaround)
  • #​1926 — Runtime AnimationsSpeed mutations propagate without recreating series
  • #​1957 — Mobile pan vs. tooltip conflict (5 px pan-engagement deadzone)
  • #​1970 — Zombie shapes after Values shrink (regression coverage)
  • #​1978 — DrawMarginFrame.Fill drawn under series
  • #​2054 — Invisible-series legend NRE
  • #​2064 — Line marker inherits user Stroke
  • #​2071 — MinSeparators floor for sparse axes
  • #​2124 — DrawnLabelVisual.Label read-only getter
  • #​2131 — PieChart gauge collapse on tight bounds (two rounds: max-value clamp + pushout-bounds split)
  • #​2132 / #​2083 — Null-gap line rendering on inserts and resize
  • #​2152 / #​2073 — Stacker correctness for mixed positive / negative values
  • #​2159 — Zoom no longer overwrites pinned MinLimit / MaxLimit
  • #​2165 — RectangleHoverArea hit-test with negative width / height
  • #​2175 / #​2119 — Granular PanX / PanY / ZoomX / ZoomY flags + NoFit honored
  • #​2216 — Ticker DisposeTicker null-deref hardening

GeoMap

  • #​962 — Series swap no longer blanks shared lands
  • #​1417 — Detach / reattach lifecycle (tab and scroll mount cycles)
  • #​1426 — Custom GeoJSON import (Polygon / MultiPolygon, non-string properties, missing keys)

... (truncated)

2.0.0

It has been a long journey to build a charting library that works seamlessly across all .NET UI frameworks. Today, we’re excited to announce the first stable release of the library.

This release doesn’t introduce new features; instead, the focus has been entirely on stability. More than 150 new tests have been added to ensure the library remains reliable well into the future.

What’s next for the library?

There are many excellent charting libraries available, but LiveCharts was created to help developers build stunning, modern UIs. At the moment, there are no examples or showcases that truly demonstrate the library’s full potential—so that’s what’s coming next. Expect new examples that highlight what LiveCharts can really do.

What's Changed

New Contributors

Full Changelog: Live-Charts/LiveCharts2@v2.0.0-rc6...2.0.0

2.0.0-rc6

After months of deep work and iteration, this release is finally here. There is XAML and hot reload support, reworked rendering for serious performance gains, and leaned hard into source generation to clean up and future-proof the codebase. Oh, and yes: LiveCharts is now AOT-friendly. It’s faster, cleaner, and more flexible than ever.

Seamless XAML Integration via Source Generators

LiveCharts now uses a powerful source generator that automatically transforms chart objects into designer-friendly UI components. For example, the generic LineSeries now has a corresponding XamlLineSeries class—part of a new naming convention where all UI-bound types are prefixed with Xaml. These components support data bindings, themes, hot reload, and full design-time integration:

xaml

This update dramatically improves the chart design experience. You can now fully style your charts using pure XAML, including theme support—no more ViewModel hacks or SkiaSharp dependencies just to customize visuals. In previous versions, UI customization often required logic in the ViewModel, which led to tightly coupled and less maintainable code. That’s now a thing of the past.

Documentation for XAML platforms has been fully updated (thanks, Copilot!) to showcase the new syntax. While the new XAML-first approach is recommended, the legacy syntax remains supported for backward compatibility.

On non-XAML platforms, MVVM usage has been phased out from examples across the site and repo, reflecting a cleaner, more platform-native approach.

Rendering is significantly faster

The rendering pipeline has undergone a deep overhaul. LiveCharts now manages SkiaSharp resources far more efficiently, with cleaner, hardware-accelerated implementations and tight synchronization with the OS screen refresh rate. We've also added custom integrations for UI frameworks—most notably, full support for the Uno Skia renderer.

SkiaSharp shaders, paints, and text blobs are now cached wherever possible, resulting in dramatically faster rendering times, smoother animations, and reduced resource consumption across the board.

Previously, LiveCharts relied on a fixed render loop that invalidated the control every ~16ms to simulate a 60 FPS refresh rate. While functional, this approach forced redraws regardless of whether the system was ready to display them. Now, rendering is fully delegated to the OS or UI framework. For example:

  • On Blazor, we use requestAnimationFrame()
  • On iOS*, CADDisplayLink
  • On Android*, Choreographer
  • On Uno Skia, a fully integrated render mode

This shift gives LiveCharts precise control over when and how frames are drawn—resulting in better performance and smoother visuals across platforms.

While it's hard to quantify the full performance gains (older versions lacked the benchmarking tools introduced in this release), the difference is substantial. Benchmarks in #​1915 and #​1936 offer a glimpse, but real-world usage shows even greater improvements.

As a bonus, there's now a "low-ish level" sample that removes the SkiaSharp dependency entirely—using Direct2D via Vortice—while still reusing 99% of the charting logic. This opens the door to even more rendering flexibility in the future.

Smarter Architecture with Source Generators

While this is an internal feature, it deserves the spotlight—because it radically simplifies how LiveCharts is built and maintained.

The library now uses a unified codebase, and a source generator automatically transforms core chart components into UI controls tailored for each supported framework. This means we write the logic once, and the generator handles the rest.

In previous versions, adding a new property to a chart control was a tedious, error-prone process. You had to manually define:

  • An AvaloniaProperty for Avalonia
  • A DependencyProperty for WPF
  • A BindableProperty for MAUI
  • Another DependencyProperty for WinUI (which behaves differently than WPF’s)
  • Now Blazor, WinForm and Eto use regular properties.

It was repetitive, fragile, and frankly exhausting.

Now? It’s magical. The generator takes care of all the boilerplate, translating properties and control logic across frameworks automatically. The result: a cleaner, more maintainable codebase—and a much more enjoyable development experience.
... (truncated)

2.0.0-rc5

This release brings a lot of improvements to the library, more than 400 commits from the last release; The library it is now compatible with net 9 on Maui, uses SkiaSharp 3 by default (when the UI framework supports it), it supports now GPU rendering (when the UI framework supports it), fixes a lot of pointer-interaction-related issues, improves events, visual elements are easier to customize, and also the drawing engine was re-structured.

Drawing engine improvements

The drawing engine in older versions was really simple, as the library evolved new features were required, like Layouts, but there was one thing missing, when an element was inside a layout, Canvas transform was not applied to the children, this is now supported and required important changes in the internal code of the library that handles drawing, this feature is now used by default on tooltips:

t

The opacity and scale from the tooltip geometry is also applied to the content inside the tooltip, that was missing in the library and was impossible in older versions, it is a small detail but was required.

The drawing engine code is much cleaner now, the library used interfaces to define all shapes in the core of library, for example the IRoundedRectangleGeometry, then on the SkiaSharp assembly, there was an implementation of this interface; Now instead there is a base abstract class in the core of the library (BaseRoundedRectangleGeometry that inherits from DrawnGeometry), this base class handles animations and transforms, then on the SkiaSharp assembly, we inherit from this base class and just use SkiaSharp to draw the rectangle (see RoundedRectangleGeometry), this is much cleaner and has the potential to remove the dependency of the library on SkiaSharp.

More info at #​1705.

Maui Net 9 friendly

in older versions, Maui handlers were not registered following the Maui logic, this caused issues like #​1684, or #​1703 this is now fixed, but there are breaking changes, you must now call .UseLiveCharts() in the MauiProgram.cs file, more info in the installation guide.

New Visual elements

VisualElements felt hacky, they were hard to customize, now it is much easier to draw anything we need in the canvas, there a lot of new examples in the web site, the old Visuals are still supported but some of them are marked as obsolete.

GPU rendering

When your app starts, you can now call LiveCharts.UseGPU = true this will use the Hardware accelerated view provided by SkiaSharp, there are known limitations, this is not supported on NetFramework due #​3111, and also not on Avalonia or Eto, where they provide the Skia assemblies.

New FPS log

We can now know the frames per second on a chart by setting LiveCharts.ShowFPS = true; and even try to get more, for example LiveCharts.MaxFps = 90;, the default is 65, not supported on Avalonia, where frames are handled by the framework.

fps

How many FPS can Blazor render?

blazor-tp-fps

About 60, not bad! but that was only the tooltip, now let's move the chart:

blazor-fps

Still decent ❤️

Pointer interaction

There is a lot of feedback about how users try to interact with the chart, this version tries to take all that feedback and provide a solution for all the cases, the FindingStrategy property on a CartesianChart, is more flexible, this property allows the user to configure how the library selects points on the chart, the library provides 8 different strategies, but when that is not enough you also create your own logic now, more info at #​1687.

The events article was also updated to explain more about this common scenario.

Axis scales

... (truncated)

2.0.0-rc4

This release is a detailed review on every open issue in the library, the reliability of the library should be drastically improved.

Now the library is compatible with SkiaSharp 3, also the Maui, Uno and WinUI views use SkiaSharp 3 by default.

There are still some issues that need attention before the first GA version.

Breaking Changes

There are no breaking changes, but this release removes most of the code that was marked as [Obsolete] in previous versions, so before updating to this version, ensure that there is no an Obsolete warning in the compiler log, here is a list of the most common features in the library that were removed in older versions:

  • When using Mappers, instead of using point.PrimaryValue, now use point.Coordinate.PrimaryValue
  • The AsLiveChartsPieSeries() extension changed to AsPieSeries()
  • On Maui, please update the MauiProgram.cs file, change .UseSkiaSharp(true) to .UseSkiaSharp()

All the documentation on the website is updated, all obsoletes should be removed fro docs now, to get a full list please see the changes on #​1625.

Highlights

  • The library is now compatible with SkiaSharp 3
  • Themes were updated in #​1662, now they render legends, tooltips, titles and angular gauges properly.

line dark

  • Toggling series visibility was buggy, especially when using observable collections, this is now fixed with #​1656, and visuals are now disposed properly from the UI.
  • Docs were simplified, now we abuse of collection expressions to reduce boilerplate code, the code style in the samples is now consistent across the site.
  • We can now control the number of labels/separatos using the Axis.LabelsDensity property
    d

New samples

The library now has advanced customization samples like:

  • Using Svg paths as labels:
    icons2

  • Change the rotation of each point based on the data.
    icons3

fixed issues:

  • #​1331
  • #​1473
  • #​1344
  • #​1664
  • #​1337
  • #​1410
  • #​1335
  • #​1333
  • #​1162
  • #​876
    ... (truncated)

2.0.0-rc3.3

  • Multiple issues fixed, thanks everyone for reporting ❤️
  • Updated targets to net 8.
  • NuGet packages are now deterministic

What's Changed

New Contributors

Full Changelog: Live-Charts/LiveCharts2@v2.0.0-rc2...v2.0.0-rc3

Commits viewable in compare view.

Updated Newtonsoft.Json from 13.0.3 to 13.0.4.

Release notes

Sourced from Newtonsoft.Json's releases.

13.0.4

  • New feature - Annotated for trim/AOT (in)compatibility
  • New feature - Added support for using Index with JArray
  • Change - Avoid LINQ expression trees in .NET 6+ reflection
  • Fix - Fixed handling of empty constructor names
  • Fix - Fixed XML convert duplicate attribute error on nested arrays with writeArrayAttribute set to true
  • Fix - Fixed XML convert array attribute is not set for properties with special characters
  • Fix - Fixed TimeOnly deserialization to support more formats

Commits viewable in compare view.

Updated NLog from 5.0.1 to 6.1.4.

Release notes

Sourced from NLog's releases.

6.1.4

Improvements

  • #​6225 AsyncTaskTarget - Fixed bug when using BatchSize=1 and doing explicit flush and next LogEvent fails. (@​snakefoot)
  • #​6206 MruCache - Changed to ConcurrentDictionary but still single writer. (@​snakefoot)
  • #​6205 TargetWithFilterChain - Increase CallSite MaxCapacity from 1000 to 2000. (@​snakefoot)
  • #​6197 JsonAttribute - New constructor with JsonLayout and Encode = false. (@​snakefoot)
  • #​6174 Reduce AOT file-size. Changed PropertyTypeConverter to avoid Dictionary for conversion mapping. (@​snakefoot)
  • #​6177 Reduce AOT file-size. Changed LogFactory PurgeObsoleteLoggers to clone Dictionary instead of ToList. (@​snakefoot)
  • #​6185 Reduce AOT file-size. Changed to use yield instead of Linq. (@​snakefoot)
  • #​6188 Reduce AOT file-size. Changed ConfigurationItemFactory from Dictionary to Array of PropertyInfo. (@​snakefoot)
  • #​6192 Reduce AOT file-size. Changed Target FindAllLayouts to use HashSet instead of Linq Distinct. (@​snakefoot)
  • #​6193 Reduce AOT file-size. Changed XmlLoggingConfiguration AutoReloadFileNames to use yield instead of Linq. (@​snakefoot)
  • #​6195 Reduce AOT file-size. Changed LoggingConfiguration CheckUnusedTargets to use HashSet instead of Linq. (@​snakefoot)
  • #​6204 TemplateEnumerator - Replace LiteralHole with CurrentHole and CurrentLiteral. (@​snakefoot)
  • #​6223 XmlParser - ReadUntilChar avoid extra string-allocation on trim InnerText. (@​snakefoot)
  • #​6222 XmlParser - Simplify ReadUntilChar by extracting parse of attribute-name into ReadEntityName. (@​snakefoot)
  • #​6209 AppVeyor - Visual Studio 2026. (@​snakefoot)
  • #​6199 Fixed nullable warnings from Activator.CreateInstance. (@​snakefoot)
  • #​6190 SetupConfigurationTargetBuilder - Fix Sonar Code Smell. (@​snakefoot)
  • #​6176 TryNLogSpecificConversion - Refactor parsing Layout from string. (@​snakefoot)
  • #​6210 ScopeContext - Fix List capacity for GetAllNestedStates. (@​jnyrup)
  • #​6211 ScopeContext - Renamed PushNestedState to CollectNestedState. (@​snakefoot)
  • #​6214 ScopeContext - Rename CaptureNestedContext to CloneNestedContext. (@​snakefoot)
  • #​6216 ScopeContext - Simplify CaptureContextProperties when only nested state. (@​snakefoot)
  • #​6217 ScopeContext - Unify CollectNestedState implementation. (@​snakefoot)

6.1.3

Improvements

  • #​6168 PropertiesDictionary - Preserve MessageTemplate property details when adding extra properties. (@​snakefoot)
  • #​6149 LoggingRule - Updating FinalMinLevel should also update MinLevel when same LogLevel. (@​snakefoot)
  • #​6165 AsyncTaskTarget - Retry with help from Task.Delay. (@​snakefoot)
  • #​6164 DateLayoutRenderer - UniversalTime = false should only convert to local when UTC. (@​snakefoot)
  • #​6138 SimpleLayout skip Precalculate when INoAllocationStringValueRenderer available. (@​reabr)
  • #​6158 TemplateEnumerator - Optimize ParseTextPart by direct calling IndexOfAny. (@​snakefoot)
  • #​6152 TemplateEnumerator - Optimize parsing of single digit holename. (@​snakefoot)
  • #​6142 InternalLogger - Skip allocating params array when no exception. (@​snakefoot)
  • #​6145 InternalLogger - Handle Exception ToString can throw with AOT. (@​snakefoot)
  • #​6154 ColoredConsoleTarget - Optimize Console Coloring for Word Highlight. (@​snakefoot)
  • #​6159 ColoredConsoleTarget - Reset capture of previous colors after ResetDefaultColors. (@​snakefoot)
  • #​6140 TryParseEnum - Apply Enum.TryParse since better for AOT. (@​snakefoot)
  • #​6143 Fixed various issues reported by EnableNETAnalyzers. (@​snakefoot)

6.1.2

Improvements

  • #​6116 PropertyTypeConverter - Prioritize IFormattable ToString when Format specified. (@​snakefoot)
  • #​6129 GZipFile - Support Header / Footer / WriteBom. (@​snakefoot)
  • #​6126 FileTarget - Alert when FileName needs to be repaired. (@​snakefoot)
  • #​6113 FileTarget - Upfront validation of ArchiveSuffixFormat property. (@​snakefoot)
  • #​6110 FileTarget - Improve repair of legacy ArchiveFileName. (@​snakefoot)
  • #​6107 LoggingRule - Added WriteTo-method to match NLog.config. (@​snakefoot)
  • #​6106 LoggingRule - Added MinLevel-property to match NLog.config. (@​snakefoot)
  • #​6118 LoggingRule - Update FinalMinLevel-property to match NLog.config. (@​snakefoot)
  • #​6123 Layout.IsNullOrEmpty similar to string.IsNullOrEmpty. (@​snakefoot)
  • #​6119 TargetPropertyWithContext - Added alias Value for Layout. (@​snakefoot)
  • #​6132 TargetPropertyWithContext - ToString returns Name and Value. (@​snakefoot)
  • #​6105 MessageTemplateParameters - Reduce code complexity. (@​snakefoot)
  • #​6131 + #​6133 Refactor NLog source code to fix nullable warnings. (@​snakefoot)

6.1.1

Improvements

  • #​6101 LogFactory - Flush / FlushAsync asynchronous completion outside Target lock. (@​snakefoot)
  • #​6100 NLog.Targets.AtomicFile supporting NetStandard2 with Win32 API. (@​michailf)
  • #​6094 XmlLayout - Faster XML encoding with INoAllocationStringValueRenderer. (@​snakefoot)
  • #​6091 LiteralWithRawValueLayoutRenderer - Only support RawValue when possible. (@​snakefoot)
  • #​6088 CachedLayoutRendererWrapper - Allow literal optimization when caching not needed. (@​snakefoot)

6.1

Improvements

  • #​5999 JsonLayout - Added support for DottedRecursion. (@​thatrajeevkr)
  • #​6084 JsonLayout - Protect against cyclic object graphs when DottedRecursion. (@​snakefoot)
  • #​6075 DebuggerTarget - Add support for MaxMessageSize and OnOverflow-action. (@​snakefoot)
  • #​6070 InternalLogger - Auto enable LogLevel.Info when activated. (@​snakefoot)
  • #​6045 LoggingConfigurationParser - Report unrecognized options in targets and rules section. (@​snakefoot)
  • #​6059 LogEventBuilder - Properties with IReadOnlyCollection for initialCapacity. (@​snakefoot)
  • #​6065 FileTarget - Adjust ArchiveSuffixFormat to better handle legacy ArchiveFileName. (@​snakefoot)
  • #​6079 FileTarget - Replace Environment.TickCount with LogEventInfo.TimeStamp. (@​snakefoot)
  • #​6066 FileTarget - Simplify FileName natural ordering logic. (@​snakefoot)
  • #​6069 FileTarget - Reduce code complexity for NaturalStringComparer. (@​snakefoot)
  • #​6064 FileTarget - Reduce code complexity for ArchiveNumbering property. (@​snakefoot)
  • #​6082 JsonLayout - Faster Json encoding with INoAllocationStringValueRenderer. (@​snakefoot)
  • #​6083 CsvLayout - Faster CSV encoding with INoAllocationStringValueRenderer. (@​snakefoot)
  • #​6081 DefaultJsonSerializer - Reduce overhead of PerformJsonEscapeWhenNeeded. (@​snakefoot)
  • #​6025 LogEventInfo - Changed LayoutCache from dictionary to linked list. (@​snakefoot)
  • #​6049 PropertiesDictionary - Increase initial capacity when insert. (@​snakefoot)
  • #​6061 PropertiesDictionary - Simplify enumerator when mixing property types. (@​snakefoot)
  • #​6074 WhenEmpty - Optimize when IsFixedText. (@​snakefoot)
  • #​6062 BufferingTargetWrapper - Improve InternalLogger output when WrappedTarget is NULL. (@​snakefoot)
  • #​6067 Fix nullable warnings from NET10 annotations. (@​snakefoot)
  • #​6068 Support nullable where TKey : notnull for dictionary. (@​snakefoot)
  • #​6071 AssemblyExtensionTypes - Reduce code complexity. (@​snakefoot)
  • #​6072 LoggingConfigurationFileLoader - Handle unknown type loading for App.config. (@​snakefoot)
  • #​6076 Marked ConversionHelpers.TryParseEnum as obsolete. (@​snakefoot)
  • #​5949 CallSiteLayoutRenderer - Obsoleted CleanNamesOfAnonymousDelegates + CleanNamesOfAsyncContinuation. (@​snakefoot)

6.0.7

Improvements

  • #​6056 FileTarget - Archive Cleanup sort filenames using natural ordering. (@​snakefoot)
  • #​6054 EventProperties - Format Dictionary Properties correctly. (@​snakefoot)
  • #​6051 Failure to create config item should be reported as InternalLogger Error. (@​snakefoot)
  • #​6052 PropertiesDictionary - Faster TryGetValue without IsEmpty. (@​snakefoot)
  • #​6048 PropertiesDictionary - Increase initial capacity when insert. (@​snakefoot)
  • #​6047 LogEventInfo - Minor optimization of HasImmutableProperties. (@​snakefoot)
  • #​6057 WhenEmpty - Support AppDomainFixedOutput optimization. (@​snakefoot)
  • #​6053 JsonAttribute - Reduce code complexity when Encode = false. (@​snakefoot)
  • #​6044 Target also enforce PreventMultipleCalls when WriteFailedNotInitialized. (@​snakefoot)
  • #​6042 NLog.RegEx - Fixed Wiki-link in nuget-package. (@​snakefoot)

6.0.6

Improvements

  • #​6027 FileTarget - Improve archive cleanup when using ArchiveSuffixFormat with datetime. (@​snakefoot)
  • #​6028 FileTarget - Fix archive cleanup when only single old file and using MaxArchiveDays. (@​snakefoot)
  • #​6039 FileTarget - Render ArchiveSuffixFormat using NLog DefaultCultureInfo. (@​snakefoot)
  • #​6030 ObjectReflectionCache - Improve handling of JObject serialization. (@​snakefoot)
  • #​6026 JsonLayout - Reduce code complexity for rendering JsonAttribute. (@​snakefoot)
  • #​6036 NullTarget - Improve thread concurrency when FormatMessage = false. (@​snakefoot)
  • #​6023 MemoryTarget - Apply MaxLogsCount limit on next LogEvent. (@​snakefoot)
  • #​6040 XmlParser - Refactor to reduce code complexity. (@​snakefoot)
  • #​6041 ScopeContextAsyncState - Refactor to reduce code complexity. (@​snakefoot)

6.0.5

Improvements

  • #​5998 FileTarget - Rolling to next directory should not fail. (@​snakefoot)
  • #​6013 ValueFormatter - Skip quotes for CaptureType.Stringify unless legacy mode. (@​snakefoot)
  • #​6007 ColoredConsoleTarget - Use Span to reduce string-allocation for word-highlighting. (@​snakefoot)
  • #​6009 NullTarget - Avoid string-allocation upfront when FormatMessage = true. (@​snakefoot)
  • #​6012 XmlLoggingConfiguration - Reduce output for InternalLogger Info-Level. (@​snakefoot)
  • #​6006 XmlLoggingConfiguration - Protect against double dispose of AutoReloadConfigFileWatcher. (@​snakefoot)
  • #​6008 LoggerImpl - Merge WriteToTargetWithFilterChain into Write. (@​snakefoot)
  • #​6010 LoggingConfiguration - Redirect AddRuleForOneLevel and AddRuleForAllLevels to AddRule. (@​snakefoot)
  • #​6011 LoggingRule - Align EnableLoggingForLevels to skip when minLevel is LogLevel.Off. (@​snakefoot)
  • #​6015 CompoundLayout - Changed to foreach for better release optimizations. (@​snakefoot)
  • #​6016 CsvLayout - Changed to foreach for better release optimizations. (@​snakefoot)
  • #​6017 JsonArrayLayout - Changed to foreach for better release optimizations. (@​snakefoot)
  • #​6018 XmlLayout - Changed to foreach for better release optimizations. (@​snakefoot)

6.0.4

Improvements

  • #​5979 FileTarget - Improve file-wildcard for archive cleanup. (@​snakefoot)
  • #​5980 FileTarget - Extend InternalLogger output with archive cleanup reason. (@​snakefoot)
  • #​5981 FileTarget - Strict wildcard check only possible when single wildcard. (@​snakefoot)
  • #​5987 FileTarget - Improve archive cleanup with dynamic seq-no. (@​snakefoot)
  • #​5988 FileTarget - Avoid parsing archive sequence number when other digits. (@​snakefoot)
  • #​5996 FileTarget - Improve fallback logic when missing file system birthtime. (@​snakefoot)
  • #​5964 ColoredConsoleTarget - WholeWords should only highlight the word. (@​snakefoot)
  • #​5967 ColoredConsoleTarget - Fixed boxing issue in ConsoleRowHighlightingRule. (@​karpinsn)
  • #​5968 Simplify WithAutoFlush-method for fluent config API. (@​snakefoot)
  • #​5970 Fix boxing for registration of builtin condition methods. (@​snakefoot)
  • #​5977 ConditionExpression - Implicit operator with NotNullIfNotNull-attribute. (@​GREsau)
  • #​5982 SimpleLayout - Implicit operator with NotNullIfNotNull-attribute. (@​snakefoot)
  • #​5992 MessageLayoutRenderer - Handle Exception.ToString() can throw with AOT. (@​snakefoot)
  • #​5983 Append4DigitsZeroPadded - Use Span instead of multiple StringBuilder.Append(). (@​snakefoot)
  • #​5985 Extracted NLog.WindowsRegistry to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Trace to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.ConcurrentFile to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Database to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Mail to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.WebService to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Network to own git repository. (@​snakefoot)

6.0.3

  • #​5952 FileTarget - Close old files when reaching OpenFileCacheSize. (@​snakefoot)
  • #​5948 FileTarget - Closing on OpenFileCacheTimeout apply least recently used. (@​snakefoot)
  • #​5947 FileTarget - Improved file-archive exception handling when KeepFileOpen=false. (@​snakefoot)
  • #​5954 ColoredConsoleTarget - Added Words-property for easy highlighting of many words without RegEx. (@​snakefoot)
  • #​5955 LogMessageTemplateFormatter - Also use IValueFormatter for positional templates. (@​snakefoot)
  • #​5953 NLog.Targets.Network - Updated links in README.md for nuget-package. (@​snakefoot)
  • #​5945 NLog.Targets.AtomicFile - Added README.md for nuget-package. (@​snakefoot)
  • #​5940 SplunkTarget - Support SplunkFields-property. (@​snakefoot)

6.0.2

  • #​5930 XmlParser - Handle XML comments after root-end-tag. (@​snakefoot)
  • #​5929 XmlLoggingConfiguration - Improve handling of invalid XML. (@​snakefoot)
  • #​5933 Handle invalid message template when skipping parameters array. (@​snakefoot)
  • #​5915 ReplaceNewLinesLayoutRendererWrapper - Replace more line ending characters. (@​oikku)
  • #​5911 NLog.Targets.GZipFile - Improve support for ArchiveAboveSize. (@​snakefoot)
  • #​5921 FileTarget - Activate legacy ArchiveFileName when ArchiveSuffixFormat contains legacy placeholder. (@​snakefoot)
  • #​5924 AsyncTargetWrapper - Updated FullBatchSizeWriteLimit default value from 5 to 10. (@​snakefoot)
  • #​5937 Mark Assembly loading with RequiresUnreferencedCodeAttribute for AOT. (@​snakefoot)
  • #​5938 Logger - Align WriteToTargets with WriteToTargetsWithSpan. (@​snakefoot)
  • #​5909 ConfigurationItemFactory - Added extension hints for webservice and activityid. (@​snakefoot)
  • #​5918 Log4JXmlTarget - Removed alias NLogViewer as conflicts with other nuget-packages. (@​snakefoot)
  • #​5926 SplunkTarget - NetworkTarget with SplunkLayout. (@​snakefoot)
  • #​5927 GelfLayout - Align with SplunkLayout. (@​snakefoot)
  • #​5913 NLog.Targets.Network - Updated nuget-package README.md. (@​snakefoot)
  • #​5912 NLog.Targets.Trace - Updated nuget-package README.md. (@​snakefoot)
  • #​5919 XML docs for Targets and Layouts with remarks about default value. (@​snakefoot)
  • #​5922 XML docs for LayoutRenderers with remarks about default value. (@​snakefoot)
  • #​5925 XML docs for Target Wrappers with remarks about default value. (@​snakefoot)
  • #​5935 Improve NLog XSD Schema with better handling of typed Layout. (@​snakefoot)
  • #​5923 Updated unit-tests from NET6 to NET8. (@​snakefoot)

6.0.1

Improvements

  • #​5898 Changed ConditionExpression to be nullable by default since no Condition means no filtering. (@​snakefoot)
  • #​5906 Include ConditionExpression in the static type registration. (@​snakefoot)
  • #​5895 Fixed the new XML parser to handle XML comments just before end-tag. (@​snakefoot)
  • #​5905 Fixed the new XML parser to allow InnerText with greater-than characters. (@​snakefoot)
  • #​5891 Updated NLog.Targets.AtomicFile to support net8.0-windows without dependency on Mono.Posix.NETStandard. (@​snakefoot)

6.0

Major changes:

  • Support Ahead-of-Time (AOT) builds without warnings
  • Support Nullable references
  • Support ReadOnlySpan to reduce memory allocations
  • LogFactory supports FlushAsync and IDisposableAsync
  • FileTarget removed support for ConcurrentWrites
  • FileTarget refactored file-archive-logic with ArchiveSuffixFormat

NLog v6 has reduced its footprint by extracting features into separate nuget-packages:

  • NLog.Targets.AtomicFile - FileTarget with ConcurrentWrites using atomic file-append from operating system API.
  • NLog.Targets.ConcurrentFile - Legacy FileTarget from NLog v5 with ConcurrentWrites using global operating system mutex.
  • NLog.Targets.GZipFile - FileTarget with EnableArchiveFileCompression using GZipStream for writing GZip compressed log-files.
  • NLog.Targets.Mail - MailTarget depends on System.Net.Mail.SmtpClient.
  • NLog.Targets.Network - NetworkTarget depends on TCP and UDP Network Socket, and adds support for Syslog and Graylog.
  • NLog.Targets.Trace - TraceTarget and NLogTraceListener depends on System.Diagnostics.TraceListener and System.Diagnostics.Trace.
  • NLog.Targets.WebService - WebServiceTarget depends on System.Net.Http.HttpClient.
  • NLog.RegEx - Depends on System.Text.RegularExpressions which is a huge dependency for a logging library.

List of all NLog 6.0 Pull Requests

See also List of major changes in NLog v6 for more details.

Thanks to all contributers: @​ana1250, @​Pavan8374, @​smnsht, @​RomanSoloweow, @​wadebaird, @​hangy, @​lavige777, @​jokoyoski, @​saltukkos, @​nih0n, @​michaelplavnik, @​Aaronmsv, @​ShadowDancer, @​Orace, @​tvogel-nid, @​martinzding, @​kurnakovv, @​dance, @​JohnVerheij

6.0.0-rc4

Improvements

  • Mark struct as readonly to allow compiler optimization
  • RegisterObjectTransformation to preserve public properties
  • Log4JXmlEventLayout - Enforce MaxRecursionLimit = 0
  • DatabaseTarget with support for AOT (@​JohnVerheij)
  • DatabaseTarget only assign ConnectionString when specified (@​JohnVerheij)

6.0.0-rc3

Improvements

  • Log4JXmlEventLayout - Fixed IncludeEmptyValue for Parameters

6.0.0-rc2

Improvements

  • Fixed NLog XmlParser to support XML comments within XML processing instructions.
  • NLog.Targets.Network now also supports NET35.
  • Updated structs to be readonly to allow compiler optimizations.
  • Updated interface ILoggingConfigurationElement to support nullable Values.
  • Updated all projects to include <IsAotCompatible>
  • Optimized ConsoleTarget to not use Console.WriteLine, and introduced option ForceWriteLine
  • Added new LogEventInfo constructor that supports ReadOnlySpan<MessageTemplateParameter>
  • Updated NLog.Schema nuget-package to include targets-file to copy NLog.xsd to project-folder.
  • Improved configuration-file loading to advise about NLog nuget-packages for missing types.

6.0.0-rc1

Improvements

  • Updated NLog API with <Nullable>enable</Nullable> and introduced Layout.Empty
  • Marked [RequiredParameter] as obsolete, and replaced with explicit option validation during initialization.
  • Marked LogEventInfo.SequenceID and ${sequenceid} as obsolete, and instead use ${counter:sequence=global}.
  • Added support for params ReadOnlySpan when using C# 13
  • Prioritize generic Logger-methods by marking legacy methods with [OverloadResolutionPriority(-1)] when using C# 13
  • Skip LogEventInfo.Parameters-array-allocation when unable to defer message-template formatting.
  • Renamed ChainsawTarget to Log4JXmlTarget to match Log4JXmlEventLayout
  • Updated NLog.Schema to include intellisense for multiple NLog-assemblies.

Unless something bad is discovered, then this will be the last preview build, before the final release of NLog v6.0

Updated NLog v6.0 release notes: https://nlog-project.org/2025/04/29/nlog-6-0-major-changes.html

6.0.0-preview1

Major Changes

  • Support AOT builds without build warnings.
  • New FileTarget without ConcurrentWrites support, but still support KeepFileOpen (true/false).
  • Moved old FileTarget into the new nuget-package NLog.Targets.ConcurrentFile.
  • Created new nuget-package NLog.Targets.AtomicFile that supports ConcurrentWrites for NET8 on both Windows / Linux.
  • Created new nuget-package NLog.Targets.GZipFile that uses GZipStream for writing directly to compressed files.
  • Moved MailTarget into the new nuget-package NLog.Targets.Mail.
  • Moved NetworkTarget into the new nuget-package NLog.Targets.Network.
  • New GelfTarget introduced for the new nuget-package NLog.Targets.Network.
  • New SyslogTarget introduced for the new nuget-package NLog.Targets.Network.
  • Moved TraceTarget and NLogTraceListener into the new nuget-package NLog.Targets.Trace.
  • Moved WebServiceTarget into the new nuget-package NLog.Targets.WebService
  • Removed dependency on System.Text.RegularExpressions and introduced new nuget-package NLog.RegEx.
  • Removed dependency on System.Xml.XmlReader by implementing own internal basic XML-Parser.

NLog v6.0 release notes: https://nlog-project.org/2025/04/29/nlog-6-0-major-changes.html

List of all NLog 6.0 Pull Requests

Thanks to all contributers: @​ana1250, @​Pavan8374, @​smnsht, @​RomanSoloweow, @​wadebaird, @​hangy, @​lavige777, @​jokoyoski, @​saltukkos, @​nih0n, @​michaelplavnik, @​Aaronmsv, @​ShadowDancer, @​Orace, @​tvogel-nid, @​martinzding, @​kurnakovv

5.5.1

  • #​5858 ConsoleTarget - Added ForceWriteLine to match NLog v6 Schema (@​snakefoot)
  • #​5866 Layout.FromLiteral to match NLog v6 (@​snakefoot)
  • #​5888 ChainsawTarget with type-alias Log4JXml to match NLog v6 (@​snakefoot)
  • #​5883 AsyncTargetWrapper - LogEventDropped and EventQueueGrow events fixes (@​dance)
  • #​5890 StringBuilderExt - Change Append2DigitsZeroPadded to array-lookup (@​snakefoot)
  • #​5936 XmlLayout - Support MaxRecursionLimit == 0 (@​snakefoot)
  • #​5936 RegisterObjectTransformation so build trimming will keep public properties (@​snakefoot)

5.5

Improvements

  • #​5710 Restored LogFactory.Setup().SetupFromEnvironmentVariables() as not obsolete (#​5710) @​snakefoot
  • #​5717 Avoid using MakeGenericType for Dictionary enumeration when AOT (#​5717) @​snakefoot
  • #​5730 Stop using obsolete Assembly.CodeBase for NetStandard (#​5730) @​snakefoot
  • #​5742 ExceptionLayoutRenderer - Handle Exception properties like StackTrace can throw with AOT (#​5742) @​snakefoot
  • #​5743 ExceptionLayoutRenderer - Handle Data-collection-item ToString can throw with AOT (#​5743) @​snakefoot
  • #​5763 ExceptionLayoutRenderer - Handle Exception-properties can throw with AOT (#​5763) @​snakefoot
  • #​5756 ServiceRepository - Improve exception-handling when resolving service-types while disposing (#​5756) @​snakefoot
  • #​5759 LayoutRenderer - Optimize performance by skipping cache result from render Inner Layout (#​5759) @​snakefoot
  • #​5795 ConditionLayoutExpression - Optimize performance by skipping cache result from render Inner Layout (#​5795) @​snakefoot
  • #​5731 Mark IFactory RegisterType as obsolete, since it will be removed with NLog v6 (#​5731) @​snakefoot
  • #​5766 Mark JsonLayout EscapeForwardSlash as obsolete, since disabled with NLog v6 (#​5766) @​snakefoot
  • #​5823 Mark ExceptionLayoutRenderer Formats-List as obsolete, since immutable with NLog v6 (#​5823) @​snakefoot
  • #​5769 Updated API-code examples to not depend on obsolete SimpleConfigurator (#​5769) @​snakefoot
  • #​5776 ObjectReflectionCache - Handle PropertyValue can throw with AOT (#​5776) @​snakefoot
  • #​5780 NetworkTarget - Introduced option NoDelay to disable delayed ACK (#​5780) @​snakefoot
  • #​5788 Fix InternalLogger noise about reflection for FuncLayoutRenderer (#​5788) @​snakefoot
  • #​5792 TargetWithContext - Reduce allocation for RenderLogEvent when SimpleLayout (#​5792) @​snakefoot
  • #​5810 Refactoring to improve null value handling (#​5810) @​snakefoot
  • #​5812 Refactoring to improve null value handling (#​5812) @​snakefoot
  • #​5817 LoggingConfigurationParser - Prioritize LoggingRules from current config (#​5817) @​snakefoot
  • #​5825 WhenEmptyLayoutRendererWrapper - Optimize IStringValueRenderer Logic (#​5825) @​snakefoot

5.4

Improvements

  • #​5698 Fix AppDomain BaseDirectory on NET9 when it returns Long UNC (#​5698) (@​snakefoot)
  • #​5700 AsyncTaskTarget - Reduce default throttle after failure to 50ms instead of 500ms (#​5700) (@​snakefoot)
  • #​5702 ColoredConsoleTarget - Recognize NO_COLOR environment variable (#​5702) (@​snakefoot)
  • #​5696 More InternalLogger output when target disabled because failed to initialize (#​5696) (@​snakefoot)
  • #​5681 SimpleLayout - FromString avoid first chance exception when unknown layoutrenderer-type (#​5681) (@​snakefoot)
  • #​5651 ObjectGraphScanner - Handle property-getter that throws when AOT (#​5651) (@​snakefoot)
  • #​5656 LoggingConfigurationParser - Handle property-getter that throws when AOT (#​5656) (@​snakefoot)
  • #​5604 Remove Serializable-attribute and SerializationInfo since obsolete in NET8 (#​5604) (@​snakefoot)
  • #​5695 Marked JsonLayout EscapeForwardSlash as obsolete (#​5695) (@​snakefoot)
  • #​5694 Marked NLogViewerTarget and IncludeNLogData as obsolete (#​5694) (@​snakefoot)
  • #​5693 Marked XmlLoggingConfiguration AppConfig as obsolete (#​5693) (@​snakefoot)
  • #​5692 Marked XmlLoggingConfiguration InitializeSucceeded as obsolete (#​5692) (@​snakefoot)
  • #​5691 Marked LogEventInfo SetStackTrace with UserStackFrameNumber as obsolete (#​5691) (@​snakefoot)
  • #​5689 Marked SetupFromEnvironmentVariables and LogToTrace as obsolete (#​5689) (@​snakefoot)
  • #​5687 FileTarget - Introduced WriteToFile without concurrentWrites (#​5687) (@​snakefoot)
  • #​5682 TraceTarget - Fixed Header output (#​5682) (@​snakefoot)
  • #​5680 CounterLayoutRenderer - Lock on readonly field to fix Sonar Code Smell (#​5680) (@​snakefoot)
  • #​5630 LogAssemblyVersion should check InternalLogger IsInfoEnabled (#​5630) (@​snakefoot)
  • #​5684 MethodFactory - Only register methods from class-types (#​5684) (@​snakefoot)
  • #​5686 StringBuilderExt - Updated EqualTo for StringBuilder to foreach-loop (#​5686) (@​snakefoot)
  • #​5611 SimpleLayout - Refactor RenderAllRenderers to use foreach (#​5611) (@​snakefoot)
  • #​5610 JsonLayout - Optimize AppendStringEscape for success path (#​5610) (@​snakefoot)
  • #​5601 JsonLayout - Optimize ExcludeEmptyProperties to skip string cast (#​5601) (@​snakefoot)

5.3.4

Improvements

  • #​5572 Layout.FromMethod that supports typed Layout (#​5572) (@​smnsht)
  • #​5580 Layout.FromMethod that supports typed Layout (without boxing) (#​5580) (@​snakefoot)
  • #​5570 ScopeContextPropertyEnumerator - Optimize HasUniqueCollectionKeys (#​5570) (@​snakefoot)
  • #​5571 XmlLayout - Fixed bug in handling unsafe xml property names (#​5571) (@​snakefoot)
  • #​5573 FuncThreadAgnosticLayoutRenderer - Implement IRawValue (#​5573) (@​snakefoot)
  • #​5577 Introduced OnConfigurationAssigned to signal activation of LoggingConfiguration (#​5577) (@​snakefoot)
  • #​5578 Update copyright to 2024, and removed trailing white spaces in source code (#​5578) (@​snakefoot)
  • #​5585 Fixed various issues reported by EnableNETAnalyzers (#​5585) (@​snakefoot)
  • #​5587 NetworkTarget - Added SendTimeoutSeconds to assign TCP Socket SendTimeout (#​5587) (@​snakefoot)
  • #​5588 DateLayoutRenderer - Optimize for Round Trip ISO 8601 Date Format = o (#​5588) (@​snakefoot)
  • #​5589 LayoutRenderer - Changed Render-method to use StringBuilderPool (#​5589) (@​snakefoot)
  • #​5599 JsonLayout - Refactor code to simplify rendering of scope properties (#​5599) (@​snakefoot)
  • #​5600 JsonLayout - Precalculate Json-Document delimiters upfront (#​5600) (@​snakefoot)

5.3.3

Improvements

  • #​5548 FileTarget - Reset reusable MemoryStream when above max capacity (#​5548) (@​RomanSoloweow)
  • #​5568 ThreadIdLayoutRenderer - Added IStringValueRenderer optimization (#​5568) (@​snakefoot)
  • #​5566 PropertiesDictionary - Added PropertyDictionaryEnumerator to enumerate without allocation (#​5566) (@​snakefoot)
  • #​5567 PropertiesDictionary - Simplify PropertyDictionaryEnumerator MoveNext (#​5567) (@​snakefoot)
  • #​5562 TargetWithContext - Skip caching when render value for ContextProperties (#​5562) (@​snakefoot)
  • #​5557 SimpleLayout - Refactor to reduce code complexity (#​5557) (@​snakefoot)
  • #​5556 DatabaseTarget - CloseConnection even when ThrowExceptions = true (#​5556) (@​snakefoot)
  • #​5553 LoggerNameMatcher private classes marked as sealed (#​5553) (@​snakefoot)
  • #​5554 LoggingConfigurationParser - Refactor to reduce code complexity (#​5554) (@​snakefoot)
  • #​5551 LoggingConfigurationParser - Refactor to reduce code complexity (#​5551) (@​snakefoot)
  • #​5550 FileArchiveModeRolling - Refactor to reduce code complexity (#​5550) (@​snakefoot)
  • #​5542 LimitingTargetWrapper - Fix wiki-link in XML docs (#​5542) (@​snakefoot)
  • #​5541 FileTarget - Improve internal logging when invalid FileName (#​5541) (@​snakefoot)
  • #​5540 WhenRepeatedFilter - Added wiki-link in XML docs (#​5540) (@​snakefoot)
  • #​5536 RegEx IsMatch is faster with RegexOptions.ExplicitCapture to skip capture (#​5536) (@​snakefoot)
  • #​5535 PropertyTypeConverter - Use Type IsAssignableFrom instead of Equals (#​5535) (@​snakefoot)
  • #​5527 StackTraceUsageUtils - Refactor to reduce code complexity (#​5527) (@​snakefoot)
  • #​5526 AsyncRequestQueue - Premature optimization of Enqueue (#​5526) (@​snakefoot)
  • #​5525 JsonLayout - Refactor to reduce code complexity (#​5525) (@​snakefoot)
  • #​5524 XmlLayout - Refactor to reduce code complexity (#​5524) (@​snakefoot)
  • #​5523 AsyncTaskTarget - Added more logging to diagnose batching logic (#​5523) (@​snakefoot)
  • #​5522 Layout will always initializes nested layouts (#​5522) (@​snakefoot)
  • #​5519 NLogTraceListener - Reduce boxing of EventType + EventId properties (#​5519) (@​snakefoot)

5.3.2

Bug Fix

  • #​5515 Fix NullReferenceException when using LoggingRules with filters and no targets (#​5515) (@​snakefoot)

5.3.1

Improvements

  • #​5313 CallSite can hide single class type using AddCallSiteHiddenClassType (#​5313) (@​wadebaird)
  • #​5489 Logging Rule with FinalMinLevel also supports dynamic filters (#​5489) (@​snakefoot)
  • #​5463 LogManager GetCurrentClassLogger fallback to assembly-name when no namespace (#​5463) (@​snakefoot)
  • #​5480 Logger LayoutRenderer able to output the Logger PrefixName (#​5480) (@​snakefoot)
  • #​5466 NLogViewer Target - Allow override of the FormattedMessage (#​5466) (@​snakefoot)
  • #​5487 CallSite fallback to Exception TargetSite when available (#​5487) (@​snakefoot)
  • #​5242 NLogTraceListener - Align Filter-behavior for all Write-methods (#​5242) (@​snakefoot)
  • #​5490 LogManager AddHiddenAssembly marked obsolete, instead use AddCallSiteHiddenAssembly (#​5490) (@​snakefoot)
  • #​5443 InternalLogger - Marked LogToTrace as obsolete to reduce dependencies (#​5443) (@​snakefoot)
  • #​5297 Replaced MutableUnsafeAttribute with ThreadAgnosticImmutableAttribute (#​5297) (@​snakefoot)
  • #​5431 Marked ILoggerBase and ISuppress as obsolete and instead use ILogger (#​5431) (@​snakefoot)
  • #​5491 LoggingRule - Marked ChildRules as obsolete (#​5491) (@​snakefoot)
  • #​5416 FileTarget - Marked NetworkWrites as obsolete, and replaced by KeepFileOpen=false (#​5416) (@​snakefoot)
  • #​5355 Marked EscapeDataNLogLegacy as obsolete (#​5355) (@​snakefoot)
  • #​5380 WrapperTarget is the wrapper and not the wrapped (#​5380) (@​snakefoot)
  • #​5485 LogFactory - Disconnect from Target write and Target flush (#​5485) (@​snakefoot)
  • #​5509 NLog Schema nuget-package with updated license info (#​5509) (@​snakefoot)
  • #​5493 Added sealed to internal classes (#​5493) (@​snakefoot)
  • #​5497 Added more NLog Wiki Links to XML docs (#​5497) (@​snakefoot)
  • #​5475 CsvLayout - Fixed links to NLog Wiki in XML docs (#​5475) (@​hangy)

5.2.8

Improvements

  • #​5450 ConfigurationItemFactory - Skip type attribute lookup for official types (#​5450) (@​snakefoot)
  • #​5441 LoggingRule - ToString should recognize Final and FinalMinLevel (#​5441) (@​snakefoot)
  • #​5438 FileTarget - Refactor Windows FileSystem Tunneling repair logic (#​5438) (@​snakefoot)
  • #​5432 Hide obsolete methods and classes from intellisense (#​5432) (@​snakefoot)
  • #​5429 CachedTimeSource - Added Thread.MemoryBarrier to avoid code-reordering (#​5429) (@​snakefoot)

5.2.7

Improvements

  • #​5427 FileTarget - Fix Windows FileSystem Tunneling when KeepFileOpen=false (#​5427) (@​snakefoot)
  • #​5422 AppEnvironmentWrapper - Added Entry-Assembly as fallback for ProcessName (#​5422) (@​snakefoot)
  • #​5419 Improved XML docs for MDC, MDLC, NDC, NDLC about being replaced by ScopeContext (#​5419) (@​snakefoot)

5.2.6

Improvements

  • #​5407 FileTarget - Added option WriteHeaderWhenInitialFileNotEmpty (#​5407) (@​RomanSoloweow)
  • #​5381 FileTarget - Removed explicit File.Create to not trigger file-scanners (#​5381) (@​snakefoot)
  • #​5382 FileTarget - SetCreationTimeUtc only when IsArchivingEnabled (#​5382) (@​snakefoot)
  • #​5384 FileTarget - SetCreationTimeUtc always when running on Windows (#​5384) (@​snakefoot)
  • #​5389 ColoredConsoleTarget - Added Setup-extension-method WriteToColoredConsole (#​5389) (@​snakefoot)
  • #​5409 MemoryTarget - Make Logs-property thread-safe to enumerate (#​5409) (@​snakefoot)
  • #​5413 MultiFileWatcher - Improve InternalLogger output to match on start and stop (#​5413) (@​snakefoot)
  • #​5398 Marked obsolete members with EditorBrowsableState.Never (#​5398) (@​snakefoot)
  • #​5412 Change TargetFrameworks to net461 when old VisualStudioVersion (#​5412) (@​snakefoot)

5.2.5

Improvements

  • #​5344 ConcurrentRequestQueue - Reduced SpinCount to 15, before monitor wait (#​5344) (@​snakefoot)
  • #​5347 ConfigurationItemFactory - Improve exception message when unknown type-alias (#​5347) (@​snakefoot)
  • #​5348 ConfigurationItemFactory - Faster scanning of relevant configuration item types (#​5348) (@​snakefoot)
  • #​5349 FileTarget - Verify FilePathLayout not containing unexpected characters (#​5349) (@​snakefoot)
  • #​5351 LogManager.ReconfigExistingLoggers with reduced memory allocation (#​5351) (@​snakefoot)
  • #​5353 CsvLayout - Improve XML docs for CustomColumnDelimiter (#​5353) (@​snakefoot)
  • #​5354 LogEventInfo - Can be immutable when having FormattedMessage and no parameters (#​5354) (@​snakefoot)
  • #​5356 Renamed internal NLogXmlElement to XmlLoggingConfigurationElement and fixed XML docs (#​5356) (@​snakefoot)
  • #​5359 StringHelpers - Skip SubString for case-insensitive Replace-method (#​5359) (@​snakefoot)
  • #​5360 ReplaceLayoutRendererWrapper - IgnoreCase faster without RegEx (#​5360) (@​snakefoot)
  • #​5363 Improved InternalLogger output when parsing NLog config with target wrappers (#​5363) (@​snakefoot)
  • #​5370 NetworkTarget - Skip connection when above max message size (#​5370) (@​snakefoot)
  • #​5371 Fixed various issues reported by EnableNETAnalyzers (#​5371) (@​snakefoot)
  • #​5372 Updated various nuget-packages to include README.md (#​5372) (@​snakefoot)

5.2.4

Improvements

Description has been truncated

Bumps LiveChartsCore.SkiaSharpView.WPF from 2.0.0-rc2 to 2.0.5
Bumps Newtonsoft.Json from 13.0.3 to 13.0.4
Bumps NLog from 5.0.1 to 6.1.4
Bumps NUnit from 3.13.3 to 4.6.1
Bumps NUnit.ConsoleRunner from 3.16.3 to 3.22.0
Bumps NUnit3TestAdapter from 4.4.2 to 6.2.0
Bumps QRCoder from 1.6.0 to 1.8.0
Bumps System.DirectoryServices from 8.0.0 to 10.0.10
Bumps System.Management from 8.0.0 to 10.0.10
Bumps System.ServiceProcess.ServiceController from 8.0.0 to 10.0.10
Bumps WPF-UI from 3.0.5 to 4.3.0

---
updated-dependencies:
- dependency-name: LiveChartsCore.SkiaSharpView.WPF
  dependency-version: 2.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-dependencies
- dependency-name: QRCoder
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-dependencies
- dependency-name: System.DirectoryServices
  dependency-version: 10.0.10
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: System.Management
  dependency-version: 10.0.10
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: System.ServiceProcess.ServiceController
  dependency-version: 10.0.10
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: WPF-UI
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: Newtonsoft.Json
  dependency-version: 13.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-dependencies
- dependency-name: NLog
  dependency-version: 6.1.4
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit.ConsoleRunner
  dependency-version: 3.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-dependencies
- dependency-name: NUnit.ConsoleRunner
  dependency-version: 3.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-dependencies
- dependency-name: NUnit3TestAdapter
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit.ConsoleRunner
  dependency-version: 3.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-dependencies
- dependency-name: NUnit3TestAdapter
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit.ConsoleRunner
  dependency-version: 3.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-dependencies
- dependency-name: NUnit3TestAdapter
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: NUnit.ConsoleRunner
  dependency-version: 3.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-dependencies
- dependency-name: NUnit.ConsoleRunner
  dependency-version: 3.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-dependencies
- dependency-name: NUnit3TestAdapter
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
- dependency-name: Newtonsoft.Json
  dependency-version: 13.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-dependencies
- dependency-name: NLog
  dependency-version: 6.1.4
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dotnet-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants