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

时间: 2024-08-30 13:14:11

c#的日志插件NLog基本使用的相关文章

一个简单好用的日志框架NLog

之前我介绍过如何使用log4net来记录日志,但最近喜欢上了另一个简单好用的日志框架NLog. 关于NLog和log4net的比较这里就不多讨论了,感兴趣的朋友可以参看.NET日志工具介绍和log4net vs. Nlog这两篇文章.本文主要介绍一下如何在项目中使用NLog. 在Nuget中安装NLog NLog可以直接使用Nuget安装: PM > Install-Package Nlog 使用NLog NLog的使用方式基本上和其它的Log库差不多,分为Trace.Debug.Info.Er

[Dubbo开发]Dubbo日志插件实现(未打包)

本文需要实现的是一个Dubbo的日志插件,日志插件的原理如上图所示. 一.原理 简单的Dubbo生产者和消费者实现服务调用的原理为: ①生产者在注册中心上注册服务: ②消费者在注册中心上订阅服务: ③一旦建立了订阅,消费者和生产者将进行点对点的通信: 此时会产生一个问题:如果作为第三方需要对服务的调用过程进行日志记录(有实际生产需求),那么将失去对调用服务的控制. 于是,在Dubbo简单生产者和消费者的基础上,增加一个日志服务器(本质上也是一个Dubbo生产者),并使用Dubbo拦截器实现日志的

log4net日志插件的使用

1.安装log4net 2.引用 3.配置(web.config文件) <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <!--信息日志配置--> <appender name=

日志插件 log4net 的使用

文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 %n(new line):换行 %d(datetime):输出当前语句运行的时刻 %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 %t(thread id):当前语句所在的线程ID 等同于 %thread %p(priorit

[转]Log4Net日志插件配置详解

log4net是一款优秀的第三方日志框架,可以很容易的加载到开发项目中(引用log4net的dll,再配置些基本参数即可),帮助程序员把日志信息输出到各种不同的目标,常见的有文本.数据库.windows日志.邮件.内存缓冲区等目标. 首先需要log4net的dll(源码中dll版本是1.2.10.0),引用到程序中,然后再配置下配置文件,配置文件如下: [html] view plain copy <?xml version="1.0"?> <configuratio

日志插件

[log4j] Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置.Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定

IDEA集成Mybatis打印日志插件

MyBatis Log Plugin :把 mybatis 输出的sql日志还原成完整的sql语句. 如下图所示,点击Tools>MyBatis Log Plugin 然后运行程序后,就会看到对应的SQL日志信息,并将?替换成真正的参数值 原文地址:https://www.cnblogs.com/dqcer/p/9123333.html

monolog 应该是世界上最好的日志插件了

引入 composer require monolog/monolog 官网 https://github.com/Seldaek/monolog 创建工具类 <?php /** * Created by PhpStorm. * User: jiqing * Date: 18-6-27 * Time: 上午11:19 */ require '../vendor/autoload.php'; use Monolog\Logger; use Monolog\Handler\StreamHandler

从零开始,搭建博客系统MVC5+EF6搭建框架(3),添加Nlog日志、缓存机制(MemoryCache、RedisCache)、创建控制器父类BaseController

一.回顾系统进度以及本章概要 目前博客系统已经数据库创建.以及依赖注入Autofac集成,接下来就是日志和缓存集成,这里日志用的是Nlog,其实还有其他的日志框架如log4,这些博客园都有很多介绍,这里就不说了,缓存机制用的是微软自带的MemoryCache和比较流行Redis,这里我也只是了解使用,没有做更升入的研究,以后好好学一下Redis,然后就是实现一个BaseController父类用来重写JsonResult方法为的是返回时间格式问题,默认json返回的时间格式是Date(84923