NLog通过代码定义配置

使用

为了在代码中使用NLog,你需要完成以下的步骤

  1. 创建一个LoggingConfiguration对象用于配置NLog
  2. 创建一个或者多个targets (继承自Target)
  3. 设置targets的属性
  4. 通过LoggingRule对象定义日志路由规则,将他们加入配置的LoggingRules集合中
  5. LogManager.Configuration的值赋值为LoggingConfiguration对象

例子

多个targets

下面这个简单的例子创建了两个targets: 一个输出到控制台,一个输出到文本。然后定义了规则,发送Debug等级以上的日志信息到这两个target。

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

class Example
{
    static void Main(string[] args)
    {
        // Step 1. Create configuration object 
        var config = new LoggingConfiguration();

        // Step 2. Create targets and add them to the configuration 
        var consoleTarget = new ColoredConsoleTarget();
        config.AddTarget("console", consoleTarget);

        var 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
        var rule1 = new LoggingRule("*", LogLevel.Debug, consoleTarget);
        config.LoggingRules.Add(rule1);

        var 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");
    }
}

posted @ 2014-11-01 11:03  争世不悔  阅读(2219)  评论(0编辑  收藏  举报