NLog的使用

Posted wenghan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLog的使用相关的知识,希望对你有一定的参考价值。

1、在Nuget上安装NLog

     技术图片

 

 

2、新建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>

 

3、建立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);
    }

}

4、将NLog属性修改为始终复制

技术图片

 

以上是关于NLog的使用的主要内容,如果未能解决你的问题,请参考以下文章

NLog GetCurrentClassLogger()抛出TypeInitializationException

NLog使用说明

NLog学习

如何在 ASP.NET Core 中使用 NLog 的高级特性

NLog 通过http保存日志

如何使用 NLog 记录到多个目标?