NLog
4.5.0
NLog is a logging platform for .NET with rich log routing and management capabilities.
See the version list below for details.
Install-Package NLog -Version 4.5.0
dotnet add package NLog --version 4.5.0
<PackageReference Include="NLog" Version="4.5.0" />
paket add NLog --version 4.5.0
#r "nuget: NLog, 4.5.0"
Getting started with NLog
- Getting started for .NET
- 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
Platform support
- .NET Framework 3.5, 4, 4.5, 4.6 & 4.7
- .NET Framework 4 client profile
- Xamarin Android
- Xamarin iOs
- Windows Phone 8
- Silverlight 4 and 5
- Mono 4
- ASP.NET 4 (NLog.Web package)
- ASP.NET Core (NLog.Web.AspNetCore package)
- .NET Core (NLog.Extensions.Logging package)
- .NET Standard 1.3+
- .NET Standard 2.x
- UWP
See also Platform support
Troubleshooting
Getting started with NLog
- Getting started for .NET
- 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
Platform support
- .NET Framework 3.5, 4, 4.5, 4.6 & 4.7
- .NET Framework 4 client profile
- Xamarin Android
- Xamarin iOs
- Windows Phone 8
- Silverlight 4 and 5
- Mono 4
- ASP.NET 4 (NLog.Web package)
- ASP.NET Core (NLog.Web.AspNetCore package)
- .NET Core (NLog.Extensions.Logging package)
- .NET Standard 1.3+
- .NET Standard 2.x
- UWP
See also Platform support
Troubleshooting
Release Notes
NLog 4.5 adds structured logging and .NET Standard support/UPW without breaking changes! Also a lot features has been added!
List of important changes in NLog 4.5
**Features:**
- Support for .Net Standard 2.0 [#2263] + [#2402] (@snakefoot)
- Support for .Net Standard 1.5 [#2341] (@snakefoot)
- Support for .Net Standard 1.3 (and UWP) [#2441] + [#2597] (Remember to manually flush on app suspend). (@snakefoot)
- Introduced Structured logging [#2208] + [#2262] + [#2244] + [#2544] (@snakefoot, @304NotModified, @jods4, @nblumhardt) - see https://github.com/NLog/NLog/wiki/How-to-use-structured-logging
- Json conversion also supports object properties [#2179], [#2555] (@snakefoot, @304NotModified)
- event-properties layout-renderer can now render objects as json [#2241] (@snakefoot, @304NotModified)
- exception layout-renderer can now render exceptions as json [#2357] (@snakefoot)
- Default file archive logic is now easier to use [#1993] (@snakefoot)
- Introduced InstallationContext.ThrowExceptions [#2214] (@rbarillec)
- WebServiceTarget - Allow configuration of proxy address [#2375] (@snakefoot)
- WebServiceTarget - JsonPost with JsonLayout without being wrapped in parameter [#2590] (@snakefoot)
- ${guid}, added GeneratedFromLogEvent [#2226] (@snakefoot)
- TraceTarget RawWrite to always perform Trace.WriteLine independent of LogLevel [#1968] (@snakefoot)
- Adding OverflowAction options to BufferingTargetWrapper [#2276] (@mikegron)
- WhenRepeatedFilter - Filtering of identical LogEvents [#2123] + [#2297] (@snakefoot)
- ${callsite} added CleanNamesOfAsyncContinuations option [#2292] (@tkhaugen, @304NotModified)
- ${ndlctiming} allows timing of ndlc-scopes [#2377] (@snakefoot)
- NLogViewerTarget - Enable override of the Logger-name [#2390] (@snakefoot)
- ${sequenceid} added [#2411] (@MikeFH)
- Added "regex-matches" for filtering [#2437] (@MikeFH)
- ${gdc}, ${mdc} & {mdlc} - Support Format parameter [#2500] (@snakefoot)
- ${currentDir} added [#2491] (@UgurAldanmaz)
- ${AssemblyVersion}: add type (File, Assembly, Informational) option [#2487] (@alexangas)
- FileTarget: Support byte order mark [#2456] (@KYegres)
- TargetWithContext - Easier to create custom NLog targets with support for MDLC and NDLC [#2467] (@snakefoot)
- ${callname-filename} - Without line number [#2591] (@brunotag)
- MDC + MDLC with SetScoped property support [#2592] (@MikeFH)
- LoggingConfiguration AddRule includes final-parameter [#2612] (@893949088)
**BugFixes:**
- Improve archive stability during concurrent file access [#1889] (@snakefoot)
- FallbackGroup could lose log events [#2265] (@frabar666)
- ${exception} - only include separator when items are available [#2257] (@jojosardez)
- LogFactory - Fixes broken EventArgs for ConfigurationChanged [#1897] (@snakefoot)
- Do not report wrapped targets as unused targets [#2290] (@thesmallbang)
- Added IIncludeContext, implemented missing properties [#2117] (@304NotModified)
- Improve logging of callsite linenumber for async-methods [#2386] (@snakefoot)
- NLogTraceListener - DisableFlush is enabled by default when AutoFlush=true [#2407] (@snakefoot)
- NLogViewer - Better defaults for connection limits [#2404] (@304NotModified)
- LoggingConfiguration.LoggingRules is not thread safe [#2393], [#2418]
- Fix XmlLoggingConfiguration reloading [#2475] (@snakefoot)
- Database Target now supports EntityFramework ConnectionStrings [#2510] (@Misiu, @snakefoot)
- LoggingConfiguration.RemoveTarget now works while actively logging [#2549] (@jojosardez, @snakefoot)
- FileTarget does not fail on platforms without global mutex support [#2604] (@snakefoot)
- LoggingConfiguration does not fail when AutoReload is not possible on the platforms without FileWatcher [#2603] (@snakefoot)
**Performance:**
- More targets has OptimizeBufferReuse enabled by default [#1913] + [#1923] + [#1912] + [#1911] + [#1910] + [#1909] + [#1908] + [#1907] + [#2560] (@snakefoot)
- StringBuilderPool - Improved Layout Render Performance by reusing StringBuilders [#2208] (@snakefoot)
- JsonLayout - Improved Layout Performance, by optimizing use of StringBuilder [#2208] (@snakefoot)
- FileTarget - Faster byte-encoding of log messsages, by using crude Encoding.GetMaxByteCount() instead of exact Encoding.GetByteCount() [#2208] (@snakefoot)
- Target - Precalculate Layout should ignore sub-layouts for complex layout (Ex Json) [#2378] (@snakefoot)
- MessageLayoutRenderer - Skip `string.Format` allocation (for caching) when writing to a single target, instead format directly into output buffer. [#2507] (@snakefoot)
for full list, see https://github.com/NLog/NLog/blob/master/CHANGELOG.md
for what is supported in each platform, see https://github.com/NLog/NLog/wiki/platform-support
Dependencies
-
.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.Collections.NonGeneric (>= 4.0.1)
- System.ComponentModel.Primitives (>= 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.
Used By
NuGet packages (1.9K)
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/dev/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 (243)
Showing the top 5 popular 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.
|
|
files-community/Files
A modern file explorer that pushes the boundaries of the platform.
|
|
JustArchiNET/ArchiSteamFarm
C# application with primary purpose of idling Steam cards from multiple accounts simultaneously.
|
|
Sonarr/Sonarr
Smart PVR for newsgroup and bittorrent users.
|
Version History
Version | Downloads | Last updated |
---|---|---|
4.7.8 | 4,902 | 2/25/2021 |
4.7.7 | 246,127 | 1/20/2021 |
4.7.6 | 651,824 | 12/6/2020 |
4.7.5 | 1,245,860 | 9/27/2020 |
4.7.4 | 1,230,196 | 8/22/2020 |
4.7.3 | 525,776 | 7/31/2020 |
4.7.2 | 3,176,201 | 5/18/2020 |
4.7.1 | 56,592 | 5/15/2020 |
4.7.0 | 2,109,616 | 3/20/2020 |
4.6.8 | 6,782,049 | 11/4/2019 |
4.6.7 | 5,482,710 | 8/25/2019 |
4.6.6 | 1,641,492 | 7/14/2019 |
4.6.5 | 2,095,290 | 6/14/2019 |
4.6.4 | 1,631,915 | 5/28/2019 |
4.6.3 | 1,426,738 | 4/30/2019 |
4.6.2 | 1,117,439 | 4/2/2019 |
4.6.1 | 156,497 | 3/29/2019 |
4.6.0 | 485,799 | 3/21/2019 |
4.5.11 | 7,265,529 | 11/6/2018 |
4.5.10 | 3,566,366 | 9/17/2018 |
4.5.9 | 1,012,855 | 8/24/2018 |
4.5.8 | 1,414,654 | 8/5/2018 |
4.5.7 | 754,026 | 7/19/2018 |
4.5.6 | 2,044,899 | 5/29/2018 |
4.5.5 | 511,747 | 5/25/2018 |
4.5.4 | 1,758,121 | 5/5/2018 |
4.5.3 | 988,627 | 4/16/2018 |
4.5.2 | 695,143 | 4/6/2018 |
4.5.1 | 212,242 | 4/3/2018 |
4.5.0 | 3,057,140 | 3/25/2018 |
4.4.13 | 581,097 | 2/27/2018 |
4.4.12 | 4,699,254 | 8/8/2017 |
4.4.11 | 1,175,550 | 6/17/2017 |
4.4.10 | 297,987 | 5/31/2017 |
4.4.9 | 786,064 | 5/5/2017 |
4.4.8 | 123,750 | 4/28/2017 |
4.4.7 | 90,693 | 4/25/2017 |
4.4.6 | 258,122 | 4/15/2017 |
4.4.5 | 358,616 | 3/28/2017 |
4.4.4 | 427,002 | 3/10/2017 |
4.4.3 | 580,546 | 2/17/2017 |
4.4.2 | 306,492 | 2/6/2017 |
4.4.1 | 899,925 | 12/24/2016 |
4.4.0 | 238,730 | 12/14/2016 |
4.3.11 | 805,255 | 11/7/2016 |
4.3.10 | 545,724 | 10/11/2016 |
4.3.9 | 398,228 | 9/18/2016 |
4.3.8 | 517,228 | 9/5/2016 |
4.3.7 | 488,731 | 8/6/2016 |
4.3.6 | 223,443 | 7/23/2016 |
4.3.5 | 715,142 | 6/12/2016 |
4.3.4 | 614,506 | 5/16/2016 |
4.3.3 | 301,732 | 4/28/2016 |
4.3.2 | 75,009 | 4/26/2016 |
4.3.1 | 93,996 | 4/20/2016 |
4.3.0 | 104,719 | 4/16/2016 |
4.2.3 | 1,233,471 | 12/20/2015 |
4.2.2 | 234,336 | 12/2/2015 |
4.2.1 | 218,173 | 11/21/2015 |
4.2.0 | 325,986 | 10/24/2015 |
4.1.2 | 590,268 | 9/20/2015 |
4.1.1 | 119,625 | 9/12/2015 |
4.1.0 | 165,802 | 8/31/2015 |
4.0.1 | 613,781 | 6/18/2015 |
4.0.0 | 665,539 | 6/9/2015 |
3.2.1 | 654,471 | 4/24/2015 |
3.2.0 | 1,147,848 | 1/2/2015 |
3.1.0 | 1,177,412 | 6/24/2014 |
3.0.0 | 184,259 | 6/2/2014 |
2.1.0 | 1,058,530 | 10/10/2013 |
2.0.1.2 | 655,816 | 4/8/2013 |
2.0.0.2000 | 1,114,625 | 7/18/2011 |
1.0.0.505 | 232,662 | 1/7/2011 |