Skip to content
Xharze edited this page Sep 21, 2012 · 1 revision

##Use In order to configure NLog in code you must complete the following steps:

  1. Create a LoggingConfiguration object that will hold the configuration
  2. Create one or more targets (objects of classes inheriting from Target)
  3. Set the properties of the targets
  4. Define logging rules through LoggingRule objects and add them to the configuration's LoggingRules
  5. Activate the configuration by assigning the configuration object to LogManager.Configuration

##Examples ###Multiple targets This sample demonstrates the programmatic creation of two targets: one is a colored console, and the other is a file and rules that send messages to them for messages whose level is Debug or higher.

using NLog;
using NLog.Targets;
using NLog.Config;
using NLog.Win32.Targets;

class Example
{
static void Main(string[] args)
{
    // Step 1. Create configuration object 
    LoggingConfiguration config = new LoggingConfiguration();
    
    // Step 2. Create targets and add them to the configuration 
    ColoredConsoleTarget consoleTarget = new ColoredConsoleTarget();
    config.AddTarget("console", consoleTarget);
    
    FileTarget fileTarget = new FileTarget();
    config.AddTarget("file", fileTarget);
    
    // Step 3. Set target properties 
    consoleTarget.Layout = "${date:format=HH\\:MM\\:ss} ${logger} ${message}";
    fileTarget.FileName = "${basedir}/file.txt";
    fileTarget.Layout = "${message}";
    
    // Step 4. Define rules
    LoggingRule rule1 = new LoggingRule("*", LogLevel.Debug, consoleTarget);
    config.LoggingRules.Add(rule1);

    LoggingRule rule2 = new LoggingRule("*", LogLevel.Debug, fileTarget);
    config.LoggingRules.Add(rule2);
   
    // Step 5. Activate the configuration
    LogManager.Configuration = config;
   
    // Example usage
    Logger logger = LogManager.GetLogger("Example");
    logger.Trace("trace log message");
    logger.Debug("debug log message");
    logger.Info("info log message");
    logger.Warn("warn log message");
    logger.Error("error log message");
    logger.Fatal("fatal log message");
}
}

###Passing Custom Values Another simple example of additional functionality in code is the use of the [${event-context}](Event-context layout renderer) layout renderer.

Clone this wiki locally