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

2021-02-20 23:18

阅读:621

标签:nlog   继承   完整   报错   文件中   seq   ace   nal   配置信息   

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

    异步包装器配置
        targets>
            target name="asyncFile" xsi:type="AsyncWrapper">
                target name="logfile" xsi:type="File" fileName="file.txt"/>
            >
        /targets>
        
            >
        /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() { }
    }

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

标签:nlog   继承   完整   报错   文件中   seq   ace   nal   配置信息   

原文地址:https://www.cnblogs.com/ye-hcj/p/8274248.html


评论


亲,登录后才可以留言!