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() { }
    }

转载于:https://www.cnblogs.com/ye-hcj/p/8274248.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值