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(
    "测试信息");
        }

    }


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

  • 相关阅读:
    Mybatis使用resultType实现一对一查询
    利用webSocket使网页和服务器通信
    hdu--1728--special bfs
    hdu--1429--状压bfs
    hdu--3006--不知为何wa
    hdu--3001--类似旅行商<tsp>
    hdu--2660--二维费用背包
    hdu--4632--dp
    hdu--4497--数论
    hdu--4496--并查集
  • 原文地址:https://www.cnblogs.com/zjoch/p/1761550.html
Copyright © 2011-2022 走看看