Eric Anastas edited this page Nov 22, 2016 · 56 revisions
Clone this wiki locally


Targets are used to display, store, or pass log messages to another destination. There are two kinds of target; those that receive and handle the messages, and those that buffer or route the messages to another target. The second group are called 'wrapper' targets.

NLog supports creating custom targets. For more information, see: Extending NLog


NLog package Version

  • AspResponse - Outputs log messages through the ASP Response object.
  • Chainsaw - Sends log messages to the remote instance of Chainsaw application from log4j.
  • ColoredConsole - Writes log messages to the console with customizable coloring.
  • Console - Writes log messages to the console.
  • Database - Writes log messages to the database using an ADO.NET provider.
  • Debug - Mock target - useful for testing.
  • Debugger - Writes log messages to the attached managed debugger.
  • EventLog - Writes log message to the Event Log.
  • File - Writes log messages to one or more files.
  • LogReceiverService - Sends log messages to a NLog Receiver Service (using WCF or Web Services).
  • Mail - Sends log messages by email using SMTP protocol.
  • Memory - Writes log messages to an ArrayList in memory for programmatic retrieval.
  • MethodCall - Calls the specified static method on each log message and passes contextual parameters to it.
  • Network - Sends log messages over the network.
  • NLogViewer - Sends log messages to the remote instance of NLog Viewer.
  • Null - Discards log messages. Used mainly for debugging and benchmarking.
  • OutputDebugString - Outputs log messages through the OutputDebugString() Win32 API.
  • PerfCounter - Increments specified performance counter on each write.
  • Trace - Sends log messages through System.Diagnostics.Trace.
  • WebService - Calls the specified web service on each log message.


NLog.Extended package Version

  • MSMQ - Writes log message to the specified message queue handled by MSMQ.

NLog.Web package Version

  • AspNetTrace - Writes log messages to the ASP.NET trace.


  • AspNetBufferingWrapper - Buffers log events for the duration of ASP.NET request and sends them down to the wrapped target at the end of a request.

NLog.Windows.Forms package Version

  • FormControl - Logs text to Windows.Forms.Control.Text property control of specified Name.
  • MessageBox - Pops up log messages as message boxes.
  • RichTextBox - Log text a Rich Text Box control in an existing or new form.

NLog.Elmah package Version

External packages

External packages, not maintained by the NLog team.

Package Version Description
Amazon SNS Version Write to Amazon SNS.
Amazon SQS Version Write to Amazon SQS.
Elastic Search Version Write to Elastic Search servers. Version Sends logs to is an online service for logging messages in the cloud.
Glimpse Version Show NLog information in Glimpse.
GrowlNotify Version Sends logs via Growl for Windows, a desktop notification system.
Logentries Version Writing to
MongoDB Version Writes NLog messages to MongoDB.
Pushover Version Sends logs via Pushover, an Android/iOS/Desktop push notification system.
RabbitMQ Version Sends logs over a RabbitMQ message broker. It allows you to combine your logs in real time across multiple platforms and systems.
SignalR Version Custom NLog target for sending log events to a SignalR hub.
Syslog Version Write to Syslog.
XML Version Write to XML files.

Writing your own target

NLog supports custom target. For more information, see: Extending NLog