• log4net 使用指南,最常遇到的问题整理。。。


    一、    Log4net特征
        Log4net是一个用于.NET开发环境的日志记录组件,由于它的超快及超灵活,很多大型的应用都会用到。
        它有如下特点:
        1.自定义日志输出级别
            Log4net将日志分为五个级别优先级从高到低依次:FATAL > ERROR > WARN > INFO > DEBUG,此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。可以通过日志级别来控制日志是否输出。如果你配置文件中定义的是INFO级别,程序中有三种日志记录方式
        Log.Info(“日志内容”),Log.Warn(“日志内容”),Log.Debug(“日志内容”)
        则Log.Info,Log.Debug都会输出日志,Log.Warn不会输出日志。
        2.自定义日志输出方式
            Log4net的日志输出方式很灵活,可以将日志输出至文本文件,控制台,邮件,Windows Event Log,数据库等等。
        对于写日志至文本文件还可以有如下非常灵活的配置。
            a.按时间段打印日志,按月,按日 ,按时,按分等随你配置
            b.按文件的大小 打印滚动日志,如每10M,100M一个日志文件,这样可以防止日志文件不至于过大,日志文件达到4,5G日后我们基本上就很难打开了。
            c.指定日志大小,比如说指定500M,那么日志将只有一个且不会超出500M。
        3.性能超快
            Log4net的日志记录性能是采用stringwriter记录日志方式的4倍左右。
    二、    Log4net在项目中应用
        1.在log4net的官网http://logging.apache.org/log4net/下载一个log4net.dll,然后在项目中添加引用。
        2.配置
            a.log4net的配置有两种,一种是独立到单独的一个配置文件中,另一种是嵌入程序本身的配置文件中(如web项目的web.config,winform的appsetting中),但这两种的配置都差不多。
            b.配置步骤,在配置文件中的<configSections>节点下加入如下一行
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
            c.在<configSections>节点下加入真正用来干活的配置。
        比如说:
        <log4net debug="false">
         <appender name="My Appender " type="log4net.Appender.RollingFileAppender">
          <file value="D:VehproMyLogger.log" />
        <appendToFile value="true" />
         <rollingStyle value="Date" />
         <datePattern value="yyyyMMdd&quot;.log&quot;" />
         <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
          </layout>
        </appender>
        <logger name="MyLogger"  additivity="false">
        <level value="ALL"/>
        <appender-ref ref=" My Appender "/>
         </logger>
          <root>
              <level value="ALL" />
              <appender-ref ref=" My Appender "/>
         </root>
        </log4net>

        在这段配置中定义了两个logger一个是root,另一个是MyLogger.它们都是通过appender-ref指定的My Appender介质来输出日志。
        d.激活log4net
        对于web工程,如果独立在一个配置文件中,假定配置文件名为log4net.config.xml
            则在Global.asax的Application_Start加入如下两行
            System.IO.FileInfo file = new System.IO.FileInfo(Server.MapPath("~\log4net.config.xml"));
                    log4net.Config.XmlConfigurator.ConfigureAndWatch(file);
            如果配置在web.config中则将代码换成log4net.Config.XmlConfigurator.Configure();

        对于应用程序,winform,windows服务等则可以在AssemblyInfo中加入
            [assembly: log4net.Config.XmlConfigurator(Watch = true)]即可。
        3.上战场
        在类中加入一个字段log如下
        private  static log4net.ILog log = log4net.LogManager.GetLogger("MyLogger ");
        GetLogger方法体中的参数MyLogger就是配置文件中定义的logger name,这行代码的意思就是我要采用Mylogger的配置进行日志记录。
        接下来变可以在代码中调用log的方法输出日志了。

    第一篇博客,发现写一点点文字还真不是个轻松的事。想写好还是没写得好,想写清没写得清呵呵,欢迎拍砖....

  • 相关阅读:
    CRLF注入
    Windows下消息中间件RabbitMQ安装教程(超详细)
    (超详细)SpringBoot+RabbitMQ+Stomp+JS实现前端消息推送
    数数塔 NBUT 1083
    数数塔 NBUT 1083
    数塔 HDU 2084
    数塔 HDU 2084
    数塔 HDU 2084
    递推
    递推
  • 原文地址:https://www.cnblogs.com/duanweishi/p/4565664.html
Copyright © 2020-2023  润新知