Flexible & free open-source logging for .NET
Latest version: 4.7
Tweet #nlog Follow @NLogOfficial
Welcome to NLog!
NLog is a flexible and free logging platform for various .NET platforms, including .NET standard. NLog makes it easy to write to several targets. (database, file, console) and change the logging configuration on-the-fly.
NLog has support for structured and traditional logging.
The focus for NLog: high performance, easy-to-use, easy to extend and flexible to configure.
Features
Easy to configure
NLog is very easy to configure, both through configuration file and programmatically. Even without restarting the application, the configuration can be changed.
Templatable
Every log message can be templated with various layout renders
Extensible
Even though NLog has targets and pre-defined layouts, you can write custom targets or pass custom values
Structured logging
Fully support for structured logging
Targets
Targets are used to display, store or pass log messages to another destination. NLog can dynamically write to one of multiple targets for each log message.
There are more than 30 targets provided out-of-the-box, including:
Files
Write logs to any number of files, with automatic file naming and archival. NLog won't lock your files by default.
Event Log
Write to event log local or remote
Database
Store your logs in databases supported by .NET
Console
Write real-time to the command-line console including color coding of messages
You can send emails whenever application errors occur
ASP.NET core Logging
Write log messages to the ASP.NET Core Logging
There are also wrapper targets which provide buffering, load balancing, failover situations, asynchronous writing and many more scenarios. The full list of targets is available on the config options page. If you didn't find the target to fit your needs, you can easily write a custom one.
Support
NLog supports the following platforms:
- .NET Framework 3.5, 4, 4.5 - 4.8
- .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.x - NLog 4.5
- .NET Standard 2.x - NLog 4.5
- UWP - NLog 4.5
License
The source code is available under the terms of BSD license.