.NET Standard 1.3 .NET Framework 3.5
There is a newer version of this package available.
See the version list below for details.
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.
#r "nuget: NLog, 4.7.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install NLog as a Cake Addin
#addin nuget:?package=NLog&version=4.7.0

// Install NLog as a Cake Tool
#tool nuget:?package=NLog&version=4.7.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 netstandard2.1
.NET Framework net35 net40 net40-client net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid monoandroid44
MonoMac monomac
MonoTouch monotouch
Silverlight sl4 sl5
Tizen tizen30 tizen40 tizen60
Universal Windows Platform uap uap10.0
Windows Phone wp8 wp81
Xamarin.iOS xamarinios xamarinios10
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2.2K)

Showing the top 5 NuGet packages that depend on NLog:

Package Downloads
NLog.Extensions.Logging The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

NLog LoggerProvider for Microsoft.Extensions.Logging for logging in .NET Standard libraries and .NET Core applications. For ASP.NET Core, check: https://www.nuget.org/packages/NLog.Web.AspNetCore

NLog.Config The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

NLog.config file to get started with configuring NLog. This package is not mandatory to get started with NLog: the configuration file can created manually (read specs here: https://github.com/NLog/NLog/wiki/Configuration-file) or the configuration can be created programmatically. (read more here: https://github.com/NLog/NLog/wiki/Configuration-API) Note: Unfortunately this package won't work well when using <PackageReference> Advised to: - download manually: https://raw.githubusercontent.com/NLog/NLog/v4.4/src/NuGet/NLog.Config/content/NLog.config - set "Copy To Output Directory" to "Copy if newer"

Microsoft.ApplicationInsights.NLogTarget The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Application Insights NLog Target is a custom target allowing you to send NLog log messages to Application Insights. Application Insights will collect your logs from multiple sources and provide rich powerful search capabilities. Privacy statement: https://go.microsoft.com/fwlink/?LinkId=512156

NLog.Web The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

NLog logging for ASP.NET and ASP.NET MVC. Includes targets and layout renderers for websites and web applications. This package is for ASP.NET 3.5+ For ASP.NET Core: Check https://www.nuget.org/packages/NLog.Web.AspNetCore

NLog.Extended The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

NLog.Extended.dll provides MSMQ target and AppSetting renderer

GitHub repositories (180)

Showing the top 5 popular GitHub repositories that depend on NLog:

Repository Stars
microsoft/PowerToys
Windows system utilities to maximize productivity
Wox-launcher/Wox
Launcher for Windows, an alternative to Alfred and Launchy.
BeyondDimension/SteamTools
🛠「Watt Toolkit」是一个开源跨平台的多功能 Steam 工具箱。
rocksdanister/lively
Free and open-source software that allows users to set animated desktop wallpapers and screensavers.
Jackett/Jackett
API Support for your favorite torrent trackers
Version Downloads Last updated
5.0.1 104,247 6/12/2022
5.0.0 346,218 5/16/2022
5.0.0-rc2 108,185 1/19/2022
5.0.0-rc1 81,095 12/20/2021
5.0.0-preview.3 47,468 10/26/2021
5.0.0-preview.2 11,959 10/3/2021
5.0.0-preview.1 12,532 8/25/2021
4.7.15 938,613 3/26/2022
4.7.14 633,565 2/23/2022
4.7.13 1,967,300 12/5/2021
4.7.12 1,413,226 10/24/2021
4.7.11 4,629,526 8/18/2021
4.7.10 4,193,842 5/14/2021
4.7.9 3,892,540 3/24/2021
4.7.8 2,090,914 2/25/2021
4.7.7 1,869,002 1/20/2021
4.7.6 3,411,615 12/6/2020
4.7.5 4,009,193 9/27/2020
4.7.4 3,125,564 8/22/2020
4.7.3 1,167,252 7/31/2020
4.7.2 7,630,515 5/18/2020
4.7.1 100,536 5/15/2020
4.7.0 3,970,285 3/20/2020
4.6.8 12,565,860 11/4/2019
4.6.7 9,248,156 8/25/2019
4.6.6 2,435,701 7/14/2019
4.6.5 3,152,409 6/14/2019
4.6.4 2,314,638 5/28/2019
4.6.3 2,232,274 4/30/2019
4.6.2 1,781,637 4/2/2019
4.6.1 246,542 3/29/2019
4.6.0 726,353 3/21/2019
4.5.11 12,766,629 11/6/2018
4.5.10 4,963,012 9/17/2018
4.5.9 1,305,436 8/24/2018
4.5.8 1,861,064 8/5/2018
4.5.7 1,017,339 7/19/2018
4.5.6 2,713,994 5/29/2018
4.5.5 709,102 5/25/2018
4.5.4 2,651,642 5/5/2018
4.5.3 1,405,100 4/16/2018
4.5.2 907,581 4/6/2018
4.5.1 278,313 4/3/2018
4.5.0 5,785,920 3/25/2018
4.4.13 738,340 2/27/2018
4.4.12 6,082,728 8/8/2017
4.4.11 1,725,895 6/17/2017
4.4.10 384,848 5/31/2017
4.4.9 991,870 5/5/2017
4.4.8 164,590 4/28/2017
4.4.7 111,088 4/25/2017
4.4.6 311,820 4/15/2017
4.4.5 454,530 3/28/2017
4.4.4 554,169 3/10/2017
4.4.3 687,628 2/17/2017
4.4.2 386,226 2/6/2017
4.4.1 1,346,625 12/24/2016
4.4.0 291,931 12/14/2016
4.3.11 989,693 11/7/2016
4.3.10 705,953 10/11/2016
4.3.9 461,674 9/18/2016
4.3.8 625,731 9/5/2016
4.3.7 603,707 8/6/2016
4.3.6 262,074 7/23/2016
4.3.5 826,651 6/12/2016
4.3.4 724,038 5/16/2016
4.3.3 381,016 4/28/2016
4.3.2 89,998 4/26/2016
4.3.1 108,246 4/20/2016
4.3.0 139,255 4/16/2016
4.2.3 1,653,075 12/20/2015
4.2.2 299,336 12/2/2015
4.2.1 438,001 11/21/2015
4.2.0 391,938 10/24/2015
4.1.2 777,195 9/20/2015
4.1.1 157,858 9/12/2015
4.1.0 206,125 8/31/2015
4.0.1 775,275 6/18/2015
4.0.0 976,841 6/9/2015
3.2.1 829,564 4/24/2015
3.2.0 1,453,532 1/2/2015
3.1.0 1,465,527 6/24/2014
3.0.0 219,845 6/2/2014
2.1.0 1,697,670 10/10/2013
2.0.1.2 937,835 4/8/2013
2.0.0.2000 1,742,904 7/18/2011
1.0.0.505 473,308 1/7/2011

## 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/