Manual

log4net is a tool to help the programmer output log statements to a variety of output targets.

In case of problems with an application, it is helpful to enable logging so that the problem can be located. With log4net it is possible to enable logging at runtime without modifying the application binary. The log4net package is designed so that log statements can remain in production code without incurring a high performance cost. It follows that the speed of logging (or rather not logging) is crucial.

At the same time, log output can be so voluminous that it quickly becomes overwhelming. One of the distinctive features of log4net (and common to all of the log4x libraries) is the notion of hierarchical loggers. Using these loggers it is possible to selectively control which log statements are output at arbitrary granularity.

log4net is designed with two distinct goals in mind: speed and flexibility. There is a tight balance between these two requirements.

What are the prerequisites for log4net?

log4net runs on net462 or higher and any framework supporting netstandard2.0.

Is there example code for using log4net?

You can find many examples in log4net/examples.

What does log4net offer?

log4net offers numerous features, including:

  • log4net is optimized for speed

  • log4net is based on a named logger hierarchy

  • log4net is thread-safe

  • Logging behavior can be set at runtime using a configuration file (xml)

  • log4net is designed to handle exceptions from the start

  • log4net can direct its output to many sinks including: a file, the console, Syslog/EventLog or even e-mail

  • log4net categorizes logging into levels: DEBUG, INFO, WARN, ERROR and FATAL.

  • The format of the log output can be easily changed by implementing a new layout class

  • The target of the log output as well as the writing strategy can be altered by writing a new appender class

  • log4net supports multiple output appenders per logger

See Features