Console log
Last updated
Last updated
Location: module.
Customizable .
Customizable per-level message colors.
Log
method is nonblocking: log events are placed into an internal queue, grouped into batches and efficiently written to console output stream in the background.
Here's what ConsoleLogSettings
have to offer:
Option
Default value
Description
OutputTemplate
OutputTemplate.Default
FormatProvider
null
ColorsEnabled
false
Enables/disables coloring of log messages.
ColorMapping
Debug
=> Gray
,
Info
=> White
,
Warn
=> Yellow
,
Error
=> Red
,
Fatal
=> DarkRed
Provides a mapping from log levels to console colors.
All configuration parameters are optional.
There's also static global configuration that affects all ConsoleLog
instances in the application. It is accessed as follows:
This configuration exposes following parameters worth mentioning:
Option
Default value
Description
EventsQueueCapacity
50000
Maximum count of log events in internal queue.
OutputBufferSize
65536
Size of the buffer used when writing log messages to console output stream (in bytes).
Note that changes in these global configuration parameters only take effect if performed before any actual logging.
Keep in mind that log messages are rendered in the background. Use Flush
or FlushAsync
methods of ConsoleLog
to ensure that all logged events have been written to console when the application shuts down.
If any log events are lost due to internal queue overflow, ConsoleLog
emits a special diagnostic message that looks like this:
There are certain scenarios where it's not feasible to use an asynchronous log, such as logging in unit tests or simple console utilities. These use cases are better served by an alternative synchronous implementation that writes to console immediately in Log
method:
It's performance is vastly inferior to that of ConsoleLog
due to lack of buffering, but it removes the need to flush and works well in test environments where Console.Out
cannot be safely cached.
to render log events with.
An optional format provider used when applying custom .
Internal queue with limited capacity implies that log messages may be lost in the event of overflow (see for more on this topic). Use EventsLost
property of a single ConsoleLog
instance or static TotalEventsLost
property to check if any events have been discarded.