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: NLog.Web.AspNetCore

Install-Package NLog -Version 4.7.0
dotnet add package NLog --version 4.7.0
<PackageReference Include="NLog" Version="4.7.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NLog --version 4.7.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

## 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)
- ${level:format=FullName} 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)
- ${dir-separator} 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)
- ${onHasProperties} 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)
- ${longdate} 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)
- ${replace} - 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/

Showing the top 10 GitHub repositories that depend on NLog:

Repository Stars
shadowsocks/shadowsocks-windows
If you want to keep a secret, you must also hide it from yourself.
Wox-launcher/Wox
Launcher for Windows, an alternative to Alfred and Launchy.
dotnet/AspNetCore.Docs
Documentation for ASP.NET Core
Sonarr/Sonarr
Smart PVR for newsgroup and bittorrent users.
JustArchiNET/ArchiSteamFarm
C# application with primary purpose of idling Steam cards from multiple accounts simultaneously.
ServiceStack/ServiceStack
Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all
Jackett/Jackett
API Support for your favorite torrent trackers.
Radarr/Radarr
A fork of Sonarr to work with movies à la Couchpotato.
microsoft/ApplicationInspector
A source code analyzer built for surfacing features of interest and other characteristics to answer the question 'what's in it' using static analysis with a json based rules engine. Ideal for scanning components before use or detecting feature level changes.
QuantConnect/Lean
Lean Algorithmic Trading Engine by QuantConnect (C#, Python, F#)

Read more about the GitHub Usage information on our documentation.

Version History

Version Downloads Last updated
4.7.0 3,100 3/20/2020
4.7.0-rc1 5,107 2/22/2020
4.6.8 1,483,001 11/4/2019
4.6.7 2,145,324 8/25/2019
4.6.6 919,142 7/14/2019
4.6.5 1,162,987 6/14/2019
4.6.4 1,027,736 5/28/2019
4.6.3 911,928 4/30/2019
4.6.2 712,305 4/2/2019
4.6.1 96,039 3/29/2019
4.6.0 311,183 3/21/2019
4.5.11 4,347,029 11/6/2018
4.5.10 2,485,127 9/17/2018
4.5.9 738,210 8/24/2018
4.5.8 1,034,051 8/5/2018
4.5.7 529,460 7/19/2018
4.5.6 1,481,539 5/29/2018
4.5.5 375,567 5/25/2018
4.5.4 1,207,834 5/5/2018
4.5.3 676,870 4/16/2018
4.5.2 565,008 4/6/2018
4.5.1 162,949 4/3/2018
4.5.0 1,734,428 3/25/2018
4.4.13 438,894 2/27/2018
4.4.12 3,442,711 8/8/2017
4.4.11 914,489 6/17/2017
4.4.10 251,041 5/31/2017
4.4.9 639,819 5/5/2017
4.4.8 99,848 4/28/2017
4.4.7 76,114 4/25/2017
4.4.6 201,147 4/15/2017
4.4.5 296,058 3/28/2017
4.4.4 337,448 3/10/2017
4.4.3 471,807 2/17/2017
4.4.2 247,990 2/6/2017
4.4.1 698,422 12/24/2016
4.4.0 204,134 12/14/2016
4.3.11 677,269 11/7/2016
4.3.10 424,439 10/11/2016
4.3.9 344,228 9/18/2016
4.3.8 435,330 9/5/2016
4.3.7 409,175 8/6/2016
4.3.6 195,703 7/23/2016
4.3.5 618,839 6/12/2016
4.3.4 511,679 5/16/2016
4.3.3 233,187 4/28/2016
4.3.2 66,047 4/26/2016
4.3.1 80,935 4/20/2016
4.3.0 78,314 4/16/2016
4.2.3 996,095 12/20/2015
4.2.2 184,657 12/2/2015
4.2.1 117,598 11/21/2015
4.2.0 283,870 10/24/2015
4.1.2 490,955 9/20/2015
4.1.1 89,030 9/12/2015
4.1.0 137,134 8/31/2015
4.0.1 519,555 6/18/2015
4.0.0 457,763 6/9/2015
3.2.1 535,298 4/24/2015
3.2.0 952,318 1/2/2015
3.1.0 983,384 6/24/2014
3.0.0 153,629 6/2/2014
2.1.0 824,726 10/10/2013
2.0.1.2 469,588 4/8/2013
2.0.0.2000 750,170 7/18/2011
1.0.0.505 154,723 1/7/2011
Show less