zoukankan      html  css  js  c++  java
  • ASP.Net2.0使用Log4Net(一)

    第一种方法 在web.config中写配置文件

    1. Log4Net主页: http://logging.apache.org/log4net/,下载Log4Net
    2. Log4Net主要由Logger, Appender, Filter, Layout 4个组件构成, 一般情况下后3个组件在配置文件中配置.
      Logger 
      负责产生日志消息,可以在代码中调用
      Appender
      负责向存储介质中追加日志, 一般在配置文件中配置,根据保存日志介质的不同Appender有多种, 比如:AdoNetAppender,EventLogAppender,RollingFileAppender.参见: http://logging.apache.org/log4net/release/config-examples.html.
      Filter
      负责过滤日志, 一般和Appender联合使用,在配置文件中配置
      Layout
      负责日志消息的格式, 一般和Appender联合使用,在配置文件中配置。 
    3. 使用步骤  

             1.给web项目添加引用log4net.dll 
             2.
    在web.config的configuration(最顶层)下加  (网上文章是把log4net放到configSections前面,但是我编译不通过) 

    <configSections>    
        
    <section name="log4net"  type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"  />
      
    </configSections>
      
    <log4net>
        
    <root></root>
        
    <logger name="Test">
          
    <level value="DEBUG" />
          
    <appender-ref ref="rollingFile" />
        
    </logger>
        
    <appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
          
    <param name="File" type=""  value="log/" />
          
    <param name="AppendToFile" value="true" />
          
    <param name="RollingStyle" value="Date" />
          
    <param name="DatePattern" value="yyyyMMdd" />
          
    <param name="StaticLogFileName" value="false" />
          
    <layout type="log4net.Layout.PatternLayout,log4net">
            
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
            
    <param name="Header" value=" ----------------------header-------------------------- " />
            
    <param name="Footer" value=" ----------------------footer-------------------------- " />
          
    </layout>
        
    </appender>
      
    </log4net>


    Logger的Level属性可以设以下值,由高到低为OFF,FATAL, ERROR,WARN,INFO,DEBUG,ALL.  高于设定值方法都能写入日志, Off所有的写入方法都不写到日志里,ALL则相反。例如当我们设成Info时,logger.Debug就会被忽略而不写入文件,但是FATAL, ERROR,WARN,INFO会被写入,因为他们等级高于INFO;
              3. 在Global.ascx(如果项目中没有,则新建)中的Application_Start方法中加入

    void Application_Start(object sender, EventArgs e) 
        
    {
         
    // Code that runs on application startup

         log4net.Config.XmlConfigurator.Configure();

        }

           4.配置<log4net>标签中的内容 

    <log4net>
        
    <root>
          
    <!--
                <level value="ALL" />
                <appender-ref ref="rootFile" />
                
    -->
        
    </root>
        
    <logger name="Test">
          
    <level value="DEBUG" />
          
    <appender-ref ref="rollingFile" />
        
    </logger>
        
    <appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
          
    <param name="File" type=""  value="log/" />
          
    <param name="AppendToFile" value="true" />
          
    <param name="RollingStyle" value="Date" />
          
    <param name="DatePattern" value="yyyyMMdd" />
          
    <param name="StaticLogFileName" value="false" />
          
    <layout type="log4net.Layout.PatternLayout,log4net">
            
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
            
    <param name="Header" value=" ----------------------header-------------------------- " />
            
    <param name="Footer" value=" ----------------------footer-------------------------- " />
          
    </layout>
        
    </appender>
      
    </log4net>


         log4net标签的框架如下, 该标签下有root, logger, appender等标签 
           root标签 
           
    所有的logger都从root继承, root本身也是一个logger 
           logger标签 
           每个logger标签代表一个logger,appender-ref表示该logger产生的日志消息传递给哪个appender,一个logger可以把相同的消息传递给多个appender记录
          appender标签 
          每个appender表示一个日志的存储位置,name不能和type一样 

    类型是RollingFileAppender
    <appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
      
    <param name="File" value="log" />                  文件名以log为开头
      
    <param name="AppendToFile" value="true" />        是否是向文件中追加日志
      
    <param name="RollingStyle" value="Date" />        日志根据日期滚动
      
    <param name="DatePattern" value="yyyyMMdd" />    日志文件名格式为: log20071120
      
    <param name="StaticLogFileName" value="false" /> 日志文件名是否是固定不变的

      日志消息的格式,   表示换行
      
    <layout type="log4net.Layout.PatternLayout,log4net">
        
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        
    <param name="Header" value=" ----------------------header-------------------------- " />
        
    <param name="Footer" value=" ----------------------footer-------------------------- " />
      
    </layout>
    </appender>

    消息模式
    %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
    %n(new line):换行
    %d(datetime):输出当前语句运行的时刻
    %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
    %t(thread id):当前语句所在的线程ID
    %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
    %c(class):当前日志对象的名称
    %L:输出语句所在的行号
    %F:输出语句所在的文件名
    %-数字:表示该项的最小长度,如果不够,则用空格填充 
    5. 在代码中调用Logger

    using System;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using log4net;

    public partial class _Default : System.Web.UI.Page 
    {
        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            ILog LOGGER 
    = LogManager.GetLogger("Test");
            LOGGER.Debug(
    "测试信息");
        }

    }


    最后,可以在根目录下找到日志对应日志文件。
    本例源码:下载本文源码

  • 相关阅读:
    算法训练 表达式计算
    基础练习 十六进制转十进制
    基础练习 十六进制转十进制
    基础练习 十六进制转十进制
    New ways to verify that Multipath TCP works through your network
    TCP的拥塞控制 (Tahoe Reno NewReno SACK)
    Multipath TCP Port for Android 4.1.2
    How to enable ping response in windows 7?
    NS3
    Multipath TCP Port for Android
  • 原文地址:https://www.cnblogs.com/zjoch/p/1761550.html
Copyright © 2011-2022 走看看