NLog is a logging platform for .NET with rich log routing and management capabilities. NLog supports traditional logging, structured logging and the combination of both.

Code Quality Rank: L2
Programming language: C#
License: BSD 3-clause "New" or "Revised" License
Tags: Nlog     Logging     Log     Tracing     Logfiles     Database     WCF     Semantic     Structured     Email     Eventlog     Archiving    
Latest version: v5.0.5

NLog alternatives and similar packages

Based on the "Logging" category.
Alternatively, view NLog alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of NLog or a related project?

Add another 'Logging' Package



<!--Pre-release version--> NuGet Semantic Versioning NuGet downloads Twitter Follow

<!--StackOverflow -->


NLog is a free logging platform for .NET with rich log routing and management capabilities. It makes it easy to produce and manage high-quality logs for your application regardless of its size or complexity.

It can process diagnostic messages emitted from any .NET language, augment them with contextual information, format them according to your preference and send them to one or more targets such as file or database.

Major and minor releases will be posted on project news. For smaller updates, follow us on Twitter

Getting started

For the possible options in the config, check the Options list and API Reference

Having troubles? Check the troubleshooting guide

ℹ️ NLog 5.0 Released!

NLog 5.0 is finally here. See List of major changes in NLog 5.0

NLog Packages

The NLog-nuget-package provides everything needed for doing file- and console-logging. But there are also multiple NLog extension packages, that provides additional target- and layout-output. See targets and layout renderers overview!

See Nuget/build status of all official packages here

Questions, bug reports or feature requests?

Issues with getting it working? Please check the troubleshooting guide before asking! With a clear error message, it's really easier to solve the issue!

Unclear how to configure NLog correctly of other questions? Please post questions on StackOverflow.

Do you have feature request or would you like to report a bug? Please post them on the issue list and follow [these guidelines](.github/CONTRIBUTING.md).

Frequently Asked Questions (FAQ)

See FAQ on the Wiki


As the current NLog team is a small team, we cannot fix every bug or implement every feature on our own. So contributions are really appreciated!

If you like to start with a small task, then up-for-grabs are nice to start with.

Please note, we have a dev and master branch

  • master is for pure bug fixes and targets NLog 4.x
  • dev targets NLog 5

A good way to get started (flow)

  1. Fork the NLog repos.
  2. Create a new branch in you current repos from the 'dev' branch. (critical bugfixes from 'master')
  3. 'Check out' the code with Git or GitHub Desktop
  4. Check [contributing.md](.github/CONTRIBUTING.md#sync-projects)
  5. Push commits and create a Pull Request (PR) to NLog

Please note: bugfixes should target the master branch, others the dev branch (NLog 5)


NLog is open source software, licensed under the terms of BSD license. See [LICENSE.txt](LICENSE.txt) for details.

How to build

Use Visual Studio 2019 and open the solution 'NLog.sln'.

For building in the cloud we use:

  • AppVeyor for Windows- and Linux-builds
  • SonarQube for code coverage

Trying to build your fork in the cloud? Check [this how-to](howto-build-your-fork.md)

Note: master points to NLog 4.x and dev to NLog 5.x

*Note that all licence references and agreements mentioned in the NLog README section above are relevant to that project's source code only.