NLog 4.7.0

NLog is a logging platform for .NET with rich log routing and management capabilities. NLog supports traditional logging, structured logging and the combination of both. Supported platforms: - .NET Framework 3.5, 4, 4.5, 4.6, 4.7 & 4.8 - .NET Standard 1.3+ and 2.0+; - .NET Framework 4 client profile - Xamarin Android, Xamarin iOs - UWP - Windows Phone 8 - Silverlight 4 and 5 - Mono 4 For ASP.NET Core, check: https://www.nuget.org/packages/NLog.Web.AspNetCore

Showing the top 20 packages that depend on NLog.

Packages Downloads
Castle.Core
Core of the castle project
6

Bugfixes

  • LogFactory - Fix deadlock issue with AutoReload (@snakefoot)
  • JsonLayout - Fixed ThreadAgnostic to correctly capture context when using nested JsonLayout (@snakefoot)
  • ExceptionLayoutRenderer - Fixed so Format option HResult also works for NetCore (@snakefoot)
  • Log4JXml Layout - Render NDLC + NDC scopes in correct order (@adanek + @304NotModified)
  • Logger - Added exception handler for CallSite capture for platform that fails to capture StackTrace (@snakefoot)
  • StringSplitter - Fixed quote handling when reading elements for config list-properties (@snakefoot)
  • Utilities: fix ConversionHelpers.TryParseEnum for white space (@304NotModified)

Features

  • LogManager.Setup() allows fluent configuration of LogFactory options (@snakefoot + @304NotModified)
  • LogManager.Setup().SetupSerialization(s => s.RegisterObjectTransformation(...)) for overriding default property reflection (@snakefoot + @304NotModified + @Giorgi + @mmurrell)
  • LogManager.Setup().SetupSerialization(s => s.RegisterConditionMethod(...)) can use lambda methods and not just static methods (@snakefoot)
  • $ will expand Info + Warn to their full name (@snakefoot)
  • FileTarget - Supports MaxArchiveDays for cleanup of old files based on their age (@snakefoot)
  • Layout.FromMethod to create Layout directly from a lambda method (@snakefoot)
  • Layout.FromString to create Layout directly from string along with optional parser validation (@snakefoot)
  • $ for rendering platform specific directory path separator (@304NotModified)
  • FileTarget - Supports ArchiveOldFileOnStartupAboveSize for cleanup of existing file when above size (@Sam13)
  • InternalLogger - Added LogMessageReceived event (@304NotModified)
  • DatabaseTarget - Assign connection properties like SqlConnection.AccessToken (@304NotModified + @snakefoot)
  • DatabaseTarget - Assign command properties like SqlCommand.CommandTimeout (@snakefoot)
  • $ for only rendering when logevent includes properties from structured logging (@snakefoot)

Improvements

  • XmlLoggingConfiguration - Marked legacy constructors with ignoreErrors parameter as obsolete (@snakefoot)
  • LoggingConfiguration - Perform checking of unused targets during initialization for better validation (@snakefoot)
  • EventLogTarget - Improve diagnostics logging when using dynamic EventLog source (@snakefoot)
  • $ now also supports raw value for use as DatabaseTarget parameter with DbType (@snakefoot)
  • SourceLink for GitHub for easy debugging into the NLog source code (@304NotModified)
  • JsonLayout - EscapeForwardSlash now automatically applies to sub-attributes (@snakefoot)
  • TraceTarget - Introduced EnableTraceFail=false to avoid Environment.FailFast (@snakefoot)
  • ExceptionLayoutRenderer - Improved error message when Format-token parsing fails (@snakefoot)
  • AutoFlushWrapper - Set AutoFlush=false for AsyncTaskTarget by default (@snakefoot)
  • LocalIpAddressLayoutRenderer - Higher priority to network-addresses that has valid gateway adddress (@snakefoot)
  • LogFactory - Flush reports to InternalLogger what targets produces timeouts (@snakefoot)

Performance

  • ObjectGraphScanner - Avoid holding list.SyncRoot lock while scanning (@snakefoot)
  • FileTarget - ConcurrentWrites=true on NetCore now much faster when archive enabled (@snakefoot)
  • JsonConverter - Write DateTime directly without string allocation (@snakefoot)
  • XmlLayout - Removed unnecessary double conversion to string (@snakefoot)
  • WebServiceTarget - Reduced memory allocations by removing unnecessary delegate capture (@snakefoot)
  • NetworkTarget - Reduced memory allocation for encoding into bytes without string allocation (@snakefoot)
  • AsyncTaskTarget - Skip default AsyncWrapper since already having internal queue (@snakefoot)
  • Mark Condition Expressions as ThreadSafe to improve concurrency in Layouts (@snakefoot)
  • DatabaseTarget - Added IsolationLevel option that activates transactions for better batching performance (@snakefoot)
  • SimpleLayout - Assignment of string-reference with null-value will translate into FixedText (@304NotModified)
  • AsyncWrapper - Less aggressive with scheduling timer events for background writing (@snakefoot)
  • Faster assignment of properties accessed through reflection (@304NotModified)
  • $ - Faster search and replace when not explicitly have requested regex support (@snakefoot)
  • Skip need for Activator.CreateInstance in DbTypeSetter (@304NotModified)

Full changelog: https://github.com/NLog/NLog/blob/master/CHANGELOG.md

For all config options and platform support, check https://nlog-project.org/config/

.NET Framework 3.5

  • No dependencies.

.NET Framework 4.0

  • No dependencies.

.NET Framework 4.5

  • No dependencies.

.NET Standard 1.3

.NET Standard 1.5

MonoAndroid 4.4

  • No dependencies.

Silverlight 4.0

  • No dependencies.

Silverlight 5.0

  • No dependencies.

WindowsPhone 8.0

  • No dependencies.

Xamarin.iOS 1.0

  • No dependencies.

.NET Standard 2.0

  • No dependencies.

Version Downloads Last updated
6.0.4 2 09/19/2025
6.0.3 2 09/19/2025
6.0.2 3 07/31/2025
6.0.1 3 07/31/2025
6.0.0 2 09/19/2025
6.0.0-rc4 3 07/31/2025
6.0.0-rc3 4 07/24/2025
6.0.0-rc2 4 06/03/2025
6.0.0-rc1 4 06/03/2025
6.0.0-preview1 4 06/03/2025
5.5.1 2 09/19/2025
5.5.0 3 06/04/2025
5.4.0 5 02/27/2025
5.3.4 5 02/27/2025
5.3.3 4 02/27/2025
5.3.2 5 02/27/2025
5.3.1 5 02/27/2025
5.2.8 5 02/27/2025
5.2.7 5 02/27/2025
5.2.6 5 02/27/2025
5.2.5 4 02/27/2025
5.2.4 5 02/27/2025
5.2.3 5 02/27/2025
5.2.2 4 02/27/2025
5.2.1 5 02/27/2025
5.2.0 5 02/27/2025
5.1.5 4 02/27/2025
5.1.4 5 02/27/2025
5.1.3 5 02/27/2025
5.1.2 5 02/27/2025
5.1.1 4 02/27/2025
5.1.0 5 02/27/2025
5.0.5 4 02/27/2025
5.0.4 5 02/27/2025
5.0.3 5 02/27/2025
5.0.2 5 02/27/2025
5.0.1 5 02/27/2025
5.0.0 4 02/27/2025
4.7.15 4 02/27/2025
4.7.14 4 02/27/2025
4.7.13 4 02/27/2025
4.7.12 4 02/27/2025
4.7.11 4 02/27/2025
4.7.10 4 02/27/2025
4.7.9 5 02/27/2025
4.7.8 5 02/27/2025
4.7.7 4 02/27/2025
4.7.6 5 02/27/2025
4.7.5 5 02/27/2025
4.7.4 4 02/27/2025
4.7.3 5 02/27/2025
4.7.2 5 02/27/2025
4.7.1 5 02/27/2025
4.7.0 5 02/27/2025
4.6.8 5 02/27/2025
4.6.7 5 02/27/2025
4.6.6 4 02/27/2025
4.6.5 5 02/27/2025
4.6.4 4 02/27/2025
4.6.3 5 02/27/2025
4.6.2 5 02/27/2025
4.6.1 5 02/27/2025
4.6.0 6 02/27/2025
4.5.11 4 02/27/2025
4.5.10 4 02/27/2025
4.5.9 5 02/27/2025
4.5.8 5 02/27/2025
4.5.7 5 02/27/2025
4.5.6 5 02/27/2025
4.5.5 4 02/27/2025
4.5.4 4 02/27/2025
4.5.3 5 02/27/2025
4.5.2 5 02/27/2025
4.5.1 5 02/27/2025
4.5.0 5 02/27/2025
4.4.13 4 02/27/2025
4.4.12 4 02/27/2025
4.4.11 4 02/27/2025
4.4.10 4 02/27/2025
4.4.9 4 02/27/2025
4.4.8 4 02/27/2025
4.4.7 4 02/27/2025
4.4.6 4 02/27/2025
4.4.5 4 02/27/2025
4.4.4 4 02/27/2025
4.4.3 4 02/27/2025
4.4.2 4 02/27/2025
4.4.1 4 02/27/2025
4.4.0 4 02/27/2025
4.3.11 4 02/27/2025
4.3.10 4 02/27/2025
4.3.9 5 02/27/2025
4.3.8 5 02/27/2025
4.3.7 6 02/27/2025
4.3.6 5 02/27/2025
4.3.5 5 02/27/2025
4.3.4 4 02/27/2025
4.3.3 4 02/27/2025
4.3.2 5 02/27/2025
4.3.1 5 02/27/2025
4.3.0 5 02/27/2025
4.2.3 5 02/27/2025
4.2.2 4 02/27/2025
4.2.1 5 02/27/2025
4.2.0 5 02/27/2025
4.1.2 6 02/27/2025
4.1.1 4 02/27/2025
4.1.0 5 02/27/2025
4.0.1 5 02/27/2025
4.0.0 4 02/27/2025
3.2.1 5 02/27/2025
3.2.0 4 02/27/2025
3.1.0 4 02/27/2025
3.0.0 4 02/27/2025
2.1.0 5 02/27/2025
2.0.1.2 4 02/27/2025
2.0.0.2000 4 02/27/2025
1.0.0.505 5 02/27/2025