Skip to content
Rolf Kristensen edited this page Sep 4, 2022 · 4 revisions

Fluent Logger API

NLog 5.0 removed the Fluent-namespace, and introduced LogEventBuilder that skips 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