NLog

1.配置方式:NLog.config

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <!--${basedir}-->
  <variable name="appName" value="c:/logs/system"/>
  <!--/${machinename}-->
  <variable name="logDirectory" value="${appName}/${windows-identity:domain=false}/${shortdate}"/>
  <targets>
    <!--file-->
    <target name="TraceFile" xsi:type="File" layout="${longdate} ${level} ${message}"  fileName="${logDirectory}/trace_mis20_poc.txt"/>
    <target name="DebugFile" xsi:type="File" layout="${longdate} ${level} ${message}"  fileName="${logDirectory}/debug_mis20_poc.txt"/>
    <target name="ErrorFile" xsi:type="File" layout="${longdate} ${level} ${message}"  fileName="${logDirectory}/error_mis20_poc.txt"/>
    <!--console-->
    <!--<target name="console" xsi:type="Console" layout="${longdate} ${level} ${message}"/>-->
  </targets>
  <rules>
    <logger name="*" minlevel="Trace" maxLevel="Trace" writeTo="TraceFile"/>
    <logger name="*" minlevel="Debug" maxLevel="Debug" writeTo="DebugFile"/>
    <logger name="*" minlevel="Error" maxLevel="Error" writeTo="ErrorFile"/>
  </rules>
</nlog>

2.编码方式:

using NLog; 
using NLog.Targets; 
using NLog.Config; 
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"); 
    } 
}

 值得注意的是:虽然可以通过NLog.LogManager.GetCurrentClassLogger();获取配置,但是配置的需要和dll在同一目录下,这需要Nlog.config的状态

是copy always/copy if newer,且最好放在根目录下,以便和dll在一个目录下。

posted @ 2016-12-06 17:45  江境纣州  阅读(70)  评论(0)    收藏  举报