NuLog - A New Breed of Logging Framework

NuLog on: Read the Docs | GitHub

Oh my!  Yet another logging framework?

No.  Not just another logging framework.  NuLog is a new breed of logging framework:

NuLog was written because "yet another" logging framework failed to meet the developer's needs.  Breaking the various log events into various levels of verbosity/severity was simplistic, too simple to meet the complex needs of modern-day applications; And don't even try to pass much more information than a formatted string back to your targets.  NuLog aims to address these problems through tag-based logging, and metadata.  On top of this NuLog aims to be totally extensible.

Instead of using verbosity/severity levels, NuLog leverages tags to categorize log events.  This tag-based approach enables a simple, yet powerful rules engine to define as broad-sweeping, or granular routing rules as you need.  This kind of fine-grained control allows you to route specific log events to a specific location, without having to recompile and re-release application code.

In addition to tag-based logging, NuLog makes passing dynamic data from your application to your log targets incredibly simple.  You can leverage the built-in layout pattern functionality to format your metadata into your text-based logs, or you can even build your own custom targets to do totally awesome, totally unique stuff, such as logging application-specific information, in a specific way to your totally custom database.

Finally, NuLog was built using SOLID design principles, making it very easy for you to build your own behavior and inject it into NuLog, customizing almost any piece of the framework.

NuLog is MIT licensed, available via NuGet, open sourced on GitHub, and documented using Sphinx and on Read the Docs.

We hope you enjoy it, and appreciate any feedback/contributions you'd like to share with the NuLog community!  Head over to the Read the Docs, and get started now!

Start using tag-based logging now!


  1. how is this different from what`s currently available in rsyslog? don`t want to be critical, just trying to understand the differences. rsyslog allows tags to be added as metadata to logs, and to set routing rules based on those tags. it also allows you to add structured data as metadata to your logs. log4j also allows adding metadata through MDC and threadcontext. does it allow a better integration with these types of logs?


Post a Comment