There is a newer version of this package available.
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" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NLog --version 4.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: NLog, 4.5.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.5.0

// Install NLog as a Cake Tool
#tool nuget:?package=NLog&version=4.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Getting started with NLog

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

NuGet packages (2.1K)

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 (274)

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.
Sonarr/Sonarr
Smart PVR for newsgroup and bittorrent users.
Jackett/Jackett
API Support for your favorite torrent trackers
rocksdanister/lively
Free and open-source software that allows users to set animated desktop wallpapers and screensavers.
Version Downloads Last updated
5.0.0-rc2 12 1/19/2022
5.0.0-rc1 7,382 12/20/2021
5.0.0-preview.3 19,815 10/26/2021
5.0.0-preview.2 6,547 10/3/2021
5.0.0-preview.1 9,077 8/25/2021
4.7.13 303,166 12/5/2021
4.7.12 594,660 10/24/2021
4.7.11 1,800,524 8/18/2021
4.7.10 2,753,764 5/14/2021
4.7.9 2,801,460 3/24/2021
4.7.8 1,521,170 2/25/2021
4.7.7 1,474,560 1/20/2021
4.7.6 2,821,121 12/6/2020
4.7.5 3,255,313 9/27/2020
4.7.4 2,611,674 8/22/2020
4.7.3 986,492 7/31/2020
4.7.2 6,466,180 5/18/2020
4.7.1 86,199 5/15/2020
4.7.0 3,451,823 3/20/2020
4.6.8 10,697,920 11/4/2019
4.6.7 8,016,741 8/25/2019
4.6.6 2,185,246 7/14/2019
4.6.5 2,845,760 6/14/2019
4.6.4 2,141,456 5/28/2019
4.6.3 1,957,634 4/30/2019
4.6.2 1,601,804 4/2/2019
4.6.1 194,231 3/29/2019
4.6.0 668,238 3/21/2019
4.5.11 10,898,166 11/6/2018
4.5.10 4,544,501 9/17/2018
4.5.9 1,225,138 8/24/2018
4.5.8 1,716,103 8/5/2018
4.5.7 922,956 7/19/2018
4.5.6 2,517,133 5/29/2018
4.5.5 658,742 5/25/2018
4.5.4 2,336,156 5/5/2018
4.5.3 1,284,540 4/16/2018
4.5.2 822,198 4/6/2018
4.5.1 259,608 4/3/2018
4.5.0 4,754,596 3/25/2018
4.4.13 691,174 2/27/2018
4.4.12 5,700,815 8/8/2017
4.4.11 1,609,956 6/17/2017
4.4.10 357,800 5/31/2017
4.4.9 930,646 5/5/2017
4.4.8 156,672 4/28/2017
4.4.7 103,056 4/25/2017
4.4.6 297,268 4/15/2017
4.4.5 427,676 3/28/2017
4.4.4 512,491 3/10/2017
4.4.3 655,098 2/17/2017
4.4.2 361,959 2/6/2017
4.4.1 1,197,292 12/24/2016
4.4.0 271,876 12/14/2016
4.3.11 939,270 11/7/2016
4.3.10 671,157 10/11/2016
4.3.9 444,601 9/18/2016
4.3.8 596,979 9/5/2016
4.3.7 574,419 8/6/2016
4.3.6 250,697 7/23/2016
4.3.5 788,310 6/12/2016
4.3.4 690,857 5/16/2016
4.3.3 347,810 4/28/2016
4.3.2 85,040 4/26/2016
4.3.1 104,033 4/20/2016
4.3.0 128,034 4/16/2016
4.2.3 1,523,878 12/20/2015
4.2.2 282,078 12/2/2015
4.2.1 418,318 11/21/2015
4.2.0 373,384 10/24/2015
4.1.2 724,504 9/20/2015
4.1.1 147,430 9/12/2015
4.1.0 197,063 8/31/2015
4.0.1 736,934 6/18/2015
4.0.0 871,045 6/9/2015
3.2.1 778,691 4/24/2015
3.2.0 1,375,184 1/2/2015
3.1.0 1,379,420 6/24/2014
3.0.0 213,917 6/2/2014
2.1.0 1,426,345 10/10/2013
2.0.1.2 906,937 4/8/2013
2.0.0.2000 1,571,280 7/18/2011
1.0.0.505 363,006 1/7/2011

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