NLog
4.7.0
Prefix Reserved
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" />
paket add NLog --version 4.7.0
#r "nuget: NLog, 4.7.0"
// 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
Getting started with NLog
- Getting started for .NET
- Getting started for ASP.NET Core 3
- Getting started for ASP.NET Core 2
- Getting started for .NET Core 2 Console application
- Getting started for ASP.NET Core 1 (csproj - vs2017)
- How to use structured logging
- Using NLog with appsettings.json
Config
- All config options: nlog-project.org/config
Troubleshooting
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 |
-
.NETFramework 3.5
- No dependencies.
-
.NETFramework 4.0 Client
- No dependencies.
-
.NETFramework 4.5
- No dependencies.
-
.NETStandard 1.3
- Microsoft.Extensions.PlatformAbstractions (>= 1.0.0)
- NETStandard.Library (>= 1.6.0)
- System.ComponentModel.Primitives (>= 4.1.0)
- System.ComponentModel.TypeConverter (>= 4.1.0)
- System.Data.Common (>= 4.1.0)
- System.Diagnostics.StackTrace (>= 4.0.1)
- System.Net.NameResolution (>= 4.0.0)
- System.Net.Requests (>= 4.0.11)
- System.Reflection.TypeExtensions (>= 4.1.0)
- System.Xml.XmlDocument (>= 4.0.1)
-
.NETStandard 1.5
- NETStandard.Library (>= 1.6.0)
- System.ComponentModel.Primitives (>= 4.1.0)
- System.ComponentModel.TypeConverter (>= 4.1.0)
- System.Data.Common (>= 4.1.0)
- System.Diagnostics.Process (>= 4.1.0)
- System.Diagnostics.StackTrace (>= 4.0.1)
- System.Diagnostics.TraceSource (>= 4.0.0)
- System.IO.FileSystem.Watcher (>= 4.0.0)
- System.Net.NameResolution (>= 4.0.0)
- System.Net.Requests (>= 4.0.11)
- System.Reflection.TypeExtensions (>= 4.1.0)
- System.Runtime.Loader (>= 4.0.0)
- System.Threading.Thread (>= 4.0.0)
- System.Xml.XmlDocument (>= 4.0.1)
-
.NETStandard 2.0
- No dependencies.
-
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.
NuGet packages (2.2K)
Showing the top 5 NuGet packages that depend on NLog:
Package | Downloads |
---|---|
NLog.Extensions.Logging
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
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
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
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
NLog.Extended.dll provides MSMQ target and AppSetting renderer |
GitHub repositories (282)
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 工具箱。
|
|
Jackett/Jackett
API Support for your favorite torrent trackers
|
|
Sonarr/Sonarr
Smart PVR for newsgroup and bittorrent users.
|
Version | Downloads | Last updated |
---|---|---|
5.0.0 | 33,877 | 5/16/2022 |
5.0.0-rc2 | 85,413 | 1/19/2022 |
5.0.0-rc1 | 63,644 | 12/20/2021 |
5.0.0-preview.3 | 42,717 | 10/26/2021 |
5.0.0-preview.2 | 10,820 | 10/3/2021 |
5.0.0-preview.1 | 11,665 | 8/25/2021 |
4.7.15 | 531,565 | 3/26/2022 |
4.7.14 | 472,393 | 2/23/2022 |
4.7.13 | 1,640,656 | 12/5/2021 |
4.7.12 | 1,227,888 | 10/24/2021 |
4.7.11 | 3,954,571 | 8/18/2021 |
4.7.10 | 3,867,559 | 5/14/2021 |
4.7.9 | 3,646,158 | 3/24/2021 |
4.7.8 | 1,958,028 | 2/25/2021 |
4.7.7 | 1,782,721 | 1/20/2021 |
4.7.6 | 3,279,550 | 12/6/2020 |
4.7.5 | 3,834,613 | 9/27/2020 |
4.7.4 | 3,015,353 | 8/22/2020 |
4.7.3 | 1,125,752 | 7/31/2020 |
4.7.2 | 7,348,058 | 5/18/2020 |
4.7.1 | 97,504 | 5/15/2020 |
4.7.0 | 3,850,777 | 3/20/2020 |
4.6.8 | 12,138,842 | 11/4/2019 |
4.6.7 | 8,962,837 | 8/25/2019 |
4.6.6 | 2,376,016 | 7/14/2019 |
4.6.5 | 3,084,821 | 6/14/2019 |
4.6.4 | 2,272,069 | 5/28/2019 |
4.6.3 | 2,161,798 | 4/30/2019 |
4.6.2 | 1,744,029 | 4/2/2019 |
4.6.1 | 231,472 | 3/29/2019 |
4.6.0 | 712,239 | 3/21/2019 |
4.5.11 | 12,306,357 | 11/6/2018 |
4.5.10 | 4,862,027 | 9/17/2018 |
4.5.9 | 1,286,507 | 8/24/2018 |
4.5.8 | 1,823,013 | 8/5/2018 |
4.5.7 | 994,927 | 7/19/2018 |
4.5.6 | 2,665,451 | 5/29/2018 |
4.5.5 | 696,604 | 5/25/2018 |
4.5.4 | 2,575,688 | 5/5/2018 |
4.5.3 | 1,372,486 | 4/16/2018 |
4.5.2 | 886,869 | 4/6/2018 |
4.5.1 | 273,919 | 4/3/2018 |
4.5.0 | 5,554,655 | 3/25/2018 |
4.4.13 | 726,499 | 2/27/2018 |
4.4.12 | 5,993,476 | 8/8/2017 |
4.4.11 | 1,695,851 | 6/17/2017 |
4.4.10 | 378,433 | 5/31/2017 |
4.4.9 | 978,975 | 5/5/2017 |
4.4.8 | 162,457 | 4/28/2017 |
4.4.7 | 108,791 | 4/25/2017 |
4.4.6 | 307,875 | 4/15/2017 |
4.4.5 | 448,434 | 3/28/2017 |
4.4.4 | 544,230 | 3/10/2017 |
4.4.3 | 679,731 | 2/17/2017 |
4.4.2 | 379,978 | 2/6/2017 |
4.4.1 | 1,309,066 | 12/24/2016 |
4.4.0 | 287,206 | 12/14/2016 |
4.3.11 | 975,692 | 11/7/2016 |
4.3.10 | 696,375 | 10/11/2016 |
4.3.9 | 457,144 | 9/18/2016 |
4.3.8 | 618,792 | 9/5/2016 |
4.3.7 | 596,560 | 8/6/2016 |
4.3.6 | 259,101 | 7/23/2016 |
4.3.5 | 816,050 | 6/12/2016 |
4.3.4 | 715,111 | 5/16/2016 |
4.3.3 | 373,529 | 4/28/2016 |
4.3.2 | 88,663 | 4/26/2016 |
4.3.1 | 107,493 | 4/20/2016 |
4.3.0 | 136,394 | 4/16/2016 |
4.2.3 | 1,620,221 | 12/20/2015 |
4.2.2 | 294,546 | 12/2/2015 |
4.2.1 | 430,413 | 11/21/2015 |
4.2.0 | 386,233 | 10/24/2015 |
4.1.2 | 762,138 | 9/20/2015 |
4.1.1 | 155,898 | 9/12/2015 |
4.1.0 | 203,663 | 8/31/2015 |
4.0.1 | 764,941 | 6/18/2015 |
4.0.0 | 952,319 | 6/9/2015 |
3.2.1 | 817,309 | 4/24/2015 |
3.2.0 | 1,430,157 | 1/2/2015 |
3.1.0 | 1,445,128 | 6/24/2014 |
3.0.0 | 218,027 | 6/2/2014 |
2.1.0 | 1,638,791 | 10/10/2013 |
2.0.1.2 | 926,925 | 4/8/2013 |
2.0.0.2000 | 1,700,770 | 7/18/2011 |
1.0.0.505 | 447,821 | 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/