• c#的日志插件NLog基本使用


    本文介绍c#的日志插件NLog

    安装插件
    创建logger
    日志级别
    书写日志信息
    配置
    包装器
    布局

    1. 安装插件

      直接下载插件包 Install-Package NLog.Config
      
    2. 创建logger

      使用LogManager创建Logger实例,最好一个类里面一个Logger实例
          写法一
              这种写法,记录的日志文件,显示的logger名字,是命名空间加上logger所在类的类名,如 ConsoleApp1.Program
              private static Logger mylogger = LogManager.GetCurrentClassLogger(); 
          写法二
              这种写法,可以手动设置日志文件中的logger名字
              Logger mylogger = LogManager.GetLogger("myTest");
      
    3. 日志级别

      级别由低到高
      Trace 记录完整的信息,一般只用在开发环境
      Debug 记录调试信息,没有Trace信息完整,一般也只用在开发环境
      Info 简单的信息,一般用在生产环境
      Warn 记录警告信息,一些可以解决的小问题
      Error 记录报错信息,一般都是Exceptions信息
      Fatal 非常严重的错误信息
      
    4. 书写日志信息

      logger.Trace("Sample trace message");
      logger.Debug("Sample debug message");
      logger.Info("Sample informational message");
      logger.Warn("Sample warning message");
      logger.Error("Sample error message");
      logger.Fatal("Sample fatal error message");
      或者使用
      logger.Log(LogLevel.Info, "Sample informational message");
      支持格式化 mylogger.Fatal("Sample {0} error message", "fetal");
      尽量使用NLog内置的格式化工具,NLog做了优化工作
      
    5. 配置

      最基础的配置
          第一步,打开NLog.config配置文件,添加如下配置
              <targets>
                  <target name="logfile" xsi:type="File" fileName="file.txt" /> // 创建一个target,代表输出日志文件的配置
              </targets>
              <rules>
                  <logger name="*" minlevel="Info" writeTo="logfile" /> // 设置Info级别以上的日志,才能够输入到什么名为logfile的target当中
                  /*
                      1.这里logger自己还有一个name,这个name对应类名,也就是说什么样的类名可以输出日志,如ConsoleApp1.Program
                      2.可以添加final="true"属性,表示后面的所有针对此指定名字的logger都无效
                  */
              </rules>
          第二步,运行代码即可
      多target配置
          <targets>
              <target name="logfile" xsi:type="File" fileName="file.txt" />
              <target name="console" xsi:type="Console" /> // 创建一个target表示用控制台输出日志信息
          </targets>
          <rules>
              <logger name="*" minlevel="Trace" writeTo="logfile" />
              <logger name="*" minlevel="Info" writeTo="console" /> // 将Info级别以上的配置信息输出到名为console的target中
          </rules>
      
    6. 包装器

      异步包装器配置
          <targets>
              <target name="asyncFile" xsi:type="AsyncWrapper">
                  <target name="logfile" xsi:type="File" fileName="file.txt"/>
              </target>
          </targets>
          <rules>
              <logger name="*" minlevel="Trace" writeTo="asyncFile"/>
          </rules>
      还有很多包装器,按需自查
      
    7. 布局

      布局是用来格式化日志输出信息的
          simple日志格式化 
              <target name="logfile" xsi:type="File" fileName="file.txt" layout="${date:format=yyyyMMddHHmmss} ${message} ${counter:increment=3:sequence=Layout:value=5}"/>
              还有很多格式化写法,自行查阅
      
    8. 子类继承log

      public class Demo1
      {
          protected Logger Log { get; set; }
          protected Demo1()
          {
              Log = LogManager.GetLogger(GetType().FullName);
          }
      }
      public class Demo2: Demo1
      {
          public Demo2():base() { }
      }
      
  • 相关阅读:
    重写
    mongodb版本区别
    mysql备份还原
    mysql备份恢复
    mysql的锁
    mysql索引
    mysql日志详解
    mysql基本语法
    mysql主从bin-log的三种方式
    mysql的GTID主从复制方式
  • 原文地址:https://www.cnblogs.com/ye-hcj/p/8274248.html
Copyright © 2020-2023  润新知