C# 使用NLog记录日志

NLog.config文件

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:	emp
log-internal.log">

  <!-- optional, add some variables
  https://github.com/nlog/NLog/wiki/Configuration-file#variables
  -->
    <!--
  <variable name="myvar" value="myvalue"/>
    -->
    <variable name="fileFormat"
            value="
            ${newline}date: ${date}
            ${newline}level: ${level}
            ${newline}logger: ${logger}
            ${newline}machinename: ${machinename}
            ${newline}message: ${message}
            ${newline}appdomain: ${appdomain}
            ${newline}assembly-version: ${assembly-version}
            ${newline}basedir: ${basedir}
            ${newline}callsite: ${callsite}
            ${newline}counter: ${counter}
            ${newline}nlogdir: ${nlogdir}
            ${newline}processid: ${processid}
            ${newline}processname: ${processname}
            ${newline}specialfolder: ${specialfolder}
            ${newline}stacktrace: ${stacktrace}
            ${newline}------------------------------------------------------------" />

  <!--
  See https://github.com/nlog/nlog/wiki/Configuration-file
  for information on customizing logging rules and outputs.
   -->
  <targets>

    <!--
    add your targets here
    See https://github.com/nlog/NLog/wiki/Targets for possible targets.
    See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
    -->

    <!--
    Write events to a file with the date in the filename.
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
            layout="${longdate} ${uppercase:${level}} ${message}" />
    -->

      <target name="file" xsi:type="File"
            fileName="${basedir}/Logs/${date:format=yyyy-MM}/${shortdate}.log"
            layout="${fileFormat}"
            maxArchiveFiles="5"
            archiveAboveSize="10240" />
      
  </targets>

  <rules>
    <!-- add your logging rules here -->

    <!--
    Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"
    <logger name="*" minlevel="Debug" writeTo="f" />
    -->

    <!--
        Level    Example
        Fatal    Highest level: important stuff down
        Error    For example application crashes / exceptions.
        Warn    Incorrect behavior but the application can continue
        Info    Normal behavior like mail sent, user updated profile etc.
        Debug    Executed queries, user authenticated, session expired
        Trace    Begin method X, end method X etc
    -->
    <!--
        Logging 水平分为以下等级“Trace<<Debug<<Info<<Warn<<Error<<Fatal ”,如果我们选择Info值,则Trace和Debug等级的信息不会被输出。
    -->
     <logger name="*" minlevel="Trace" writeTo="file"/>
  </rules>
</nlog>

封装 Log的类 

public sealed class Log
{
    private static NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();

    private Log() { }

    public static void Trace(string strMsg)
    {
        _logger.Trace(strMsg);
    }

    public static void Debug(string strMsg)
    {
        _logger.Debug(strMsg);
    }

    public static void Info(string strMsg)
    {
        _logger.Info(strMsg);
    }

    public static void Warn(string strMsg)
    {
        _logger.Warn(strMsg);
    }

    public static void Error(string strMsg)
    {
        _logger.Error(strMsg);
    }

    public static void Fatal(string strMsg)
    {
        _logger.Fatal(strMsg);
    }

}

 

你可能感兴趣的