Skip to content
Rolf Kristensen edited this page Oct 14, 2024 · 9 revisions

Fluent Logger API

NLog 5.0 replaces the Fluent-namespace with the new optimized LogEventBuilder, that skips memory-allocation when LogLevel not enabled. The new fluent builder can be activated with one of these extensions methods for ILogger:

  • ForLogEvent - Builds base LogEvent
  • ForTraceEvent - Builds LogEvent with Trace-LogLevel
  • ForDebugEvent - Builds LogEvent with Debug-LogLevel
  • ForInfoEvent - Builds LogEvent with Info-LogLevel
  • ForWarnEvent - Builds LogEvent with Warn-LogLevel
  • ForErrorEvent - Builds LogEvent with Error-LogLevel
  • ForFatalEvent - Builds LogEvent with Fatal-LogLevel
  • ForExceptionEvent - Builds LogEvent with Exception and Error-LogLevel

To complete the fluent builder then call Log() to capture available callsite information with help from Caller Member Attributes, and then writes the actual LogEvent to any configured NLog targets.

Examples

Writing Info Message

_logger.ForInfoEvent()
       .Message("This is a fluent message {0}.", "test")
       .Property("PropertyName", "PropertyValue")
       .Log();

Writing Exception Message.

try
{
    string text = File.ReadAllText(path);
}
catch (Exception ex)
{
    _logger.ForExceptionEvent(ex)
           .Message("Error reading file '{0}'.", path)
           .Property("Test", "InfoWrite")
           .Log();
}
Clone this wiki locally