.net项目使用日志框架log4net

目录

  • 一、log4net简介
  • 二、log4net结构
    • 1、Logger:
    • 2、APPender:
    • 3、Filter:
    • 4、Layout:
    • 5、ObjectRender
  • 三、Log4net参数:
    • 四、Log4net日志分类
      • 五、在配置中启用和关闭日志
        • 六、log4net使用
          • 1、引用log4net.dll文件
            • (1)、在Nuget中下载log4net
            • (2)、在官网下载
          • 2、在config文件中的配置
            • 3、示例程序

            一、log4net简介 Log4net是Apache下一个开放源码的项目,我们可以控制日志信息的输出目的地。
            Log4net中定义了多种日志信息输出模式。
            在做项目的时候最头疼的是在程序发布到正式环境之后出现了问题,我们不能调试而且问题很难找到,于是我们需要大量的日志数据来精确的跟踪程序的运行状态。
            Log4net可以帮我们来解决这一个难题,对于日志的输出我们不需要人为的去干涉,它可以根据需要将日志输出到控制台、文本文件、Windows日志事件查看器、数据库、邮件等位置,以便我们快速跟踪程序bug。

            二、log4net结构 log4net主要分为5个核心组件:Logger、APPender、Filter、Layout、Object Render。

            1、Logger:
            主要用于记录日志的分类和控制日志的级别。它可以以多种格式输出日志信息,同时它也可以控制日志的输出级别。

            2、APPender:
            这里我们简单称之为“附着器”,意思就是说日志的输出必须依赖于它,更确切的说以文本形式输出,还是控制台格式输出都必须要依靠它来控制。log4net定义了多种附着器:
            (1)AdoNetAppender:将日志记录到数据库中,可以采用SQL和存储过程两种方式。
            (2)FileAppender:将日志写到文件中。
            (3)MemoryAppender:将日志存到内存缓冲区。
            (4)ConsoleAppender:将日志输出到控制台。
            (5)EventLogAppender:将日志写到Windows Event Log中。
            (6)ANSIColorTerminalAppender:在ANSI窗口终端写下高亮度的日志事件。
            (7)ASPNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
            (8)BufferingForwardingAppender:在输出到Appenders之前先缓存日志事件。
            (9)RollingFileAppender:将日志以回滚文件的形式写到文件中。
            (10)SmtpAppender:将日志写到邮件中。

            3、Filter:
            Appender是将日志以缺省值的方式输出,意思就是按照默认值的方式输出。而Filter意思是过滤器,使用Filter可以将日志以不同的格式来输出。

            4、Layout:
            这个用于控制日志输出显示格式。

            5、Object Render
            用于按照用户自定义标准来输出日志。

            三、Log4net参数: 针对Layout设置日志输出的格式
            1.%m(message):输出的日志消息
            2.%n(new line):换行
            3.%d(datetime):输出当前语句运行的时刻
            4.%r(runtime):输出程序从运行到当前语句时消耗的毫秒数
            5.%t(thread id):当前语句所在线程的ID
            6.%p(priority):日志的当前优先级
            7.%c(Class):当前日志对象的名称
            8.%f(file):输出语句所在的文件名
            9.%l(line):输出语句所在的行号
            10.%数字:表示该项的最小宽度,如果不够,则用空格填充。
            例如:"[时间]:%d%n[级别]:%p%n[内容]:%m%n%n"
            [时间]:2016-10-28 10:21:38,634
            [级别]:INFO
            [内容]:>>>>>>>>>>>

            四、Log4net日志分类 Log4net 分为如下几个级别:
            • FATAL 毁灭级别
            • ERROR 错误级别
            • WARA警告级别
            • INFO消息级别
            • DEBUG 调试级别
            这几种日志级别高低:FATAL>ERROR>WARA>INFO>DEBUG
            只有日志输出级别大于或等于配置的级别才能输出日志信息。
            比如我的日志配置级别为INFO,那么只有log.info(),log.warm(),log.Error(),log.Fatal()才能输出日志信息,Debug方式就不能输出。
            Log4net中还有两种特殊的配置级别:ALL -允许所有的日志级别输出,OFF - 拒绝所有的日志级别输出。

            五、在配置中启用和关闭日志 在config文件中可以很方便地关闭和启用日志,就是在进行配置,如下就是一个例子:

            在上面的例子中可以看出,如果想增加日志输出目的地,增加节点就是了,注意后面的ref是在config中配置的appender name,如果想要取消,删除或者注释掉这行就可以了。

            六、log4net使用
            1、引用log4net.dll文件
            使用log4net必须引入log4net.dll文件,两种下载log4net.dll的方式:

            (1)、在Nuget中下载log4net 【.net项目使用日志框架log4net】.net项目使用日志框架log4net
            文章图片

            点击"安装"进行安装

            (2)、在官网下载 官网网址:http://logging.apache.org/log4net/
            .net项目使用日志框架log4net
            文章图片

            下载DLL文件,解压之后根据.NET FRAMEWORK的版本,选择对应的DLL文件,文件路径:C:\Users\Lenovo\Desktop\log4net-2.0.7-bin-newkey\log4net-2.0.7\bin\net\4.5\release。
            引用->添加引用,将下载的log4net.dll文件添加进来。

            2、在config文件中的配置
            首先要添加config文件,在类库项目、命令行程序及WinForm中添加的是app.config,在WebForm中添加的是web.config。或者新添加一个"应用程序配置文件",将配置信息添加在新的配置文件中,在本示例中,将配置信息添加在新的应用程序配置文件中。新的配置文件命名为:log4net.config。
            注意:要将log4net.config的属性“复制到输出目录”设置为“始终复制”。在log4net上右键选择文件属性,修改属性
            .net项目使用日志框架log4net
            文章图片

            要使用log4net,首先要在config文件的节点中增加配置(如果没有这个节点请手动增加),如下:

            除此之外,还要在顶级节点下增加子节点。在节点下就可以增加子节点,每个子节点代表一种记录日志的方式。
            在使用日志的类的命名空间前加上XmlConfiguratorAttribute标记
            .net项目使用日志框架log4net
            文章图片

            不加这个标记的话则log无法生效,如果类较多则比较麻烦,此时可以把这个配置放在AssemblyInfo.cs中,针对整个程序集生效。
            .net项目使用日志框架log4net
            文章图片


            3、示例程序
            配置文件:

            在程序中使用log4net记录日志:
            using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using log4net; namespace Log4netDemo{class Program{static void Main(string[] args){//创建文件对象ILog log = LogManager.GetLogger("log4netDemo"); //开启配置log4net.Config.XmlConfigurator.Configure(); log.Debug("我是Debug"); log.Info("我是Info"); log.Error("我是Error"); Console.ReadKey(); }}}

            输出结果(以控制台为例):
            .net项目使用日志框架log4net
            文章图片

            在config文件中设置的日志输出级别是INFO,而Debug的级别小于INFO,所以只输出Info和Error。
            在WebForm中也可以使用Log4net,如果是web项目,需要在global.asax的Application_Start方法中配置web.config的引用,log4net.Config.XmlConfigurator.Configure();
            到此这篇关于.net项目使用日志框架log4net的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

              推荐阅读