logger     是负责日志的记录者,会绑定一个或多个 Appender
appender 提供记录的介质
layout      负责把记入的内容格式化,用于设置日志字符串的格式。
filter        负责把内容进行筛选

Log4net 允许我们通过该参数调整日志记录级别,只有高于或等于该级别的日志才会被记录下来。
(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)
root的设置在所有logger中都起作用。 root 是所有logger的根
当在root和logger中重复设定相同的appender时,你会发现同一日志信息将被记录两次

<logger>标签
预定义了一个具体日志对象的设置,通过调用LogManager.GetLogger("----")函数,你可以检索具有该名字的日志
 <appender> 标签
转换模式(ConversionPattern)
每种转换符号都以%开始,后面跟着一个格式符号和换符号。

%-数字 :该项的最小长度,小于最小长度的用空格填充
%m(message):输出的日志消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,
%L(line ):输出语句所在的行号
%F(file name):输出语句所在的文件名

如 "%-5p [%t]- %m%n" 
log4net.ILog M_Log = LogManager.GetLogger(this.GetType());
M_Log .Debug("Test");
生成输出为:DEBUG [main]- Test

 http://www.netgrid.cn/blog/article.asp?id=667

日志过滤器的使用
http://blog.csdn.net/wuhuif/archive/2006/10/25/1350719.aspx



我想问问你们:
1.日志写到txt里面,但可能要写入不同的.txt  是不是要定义很多appender 用来输出到.txt
2.写入数据库的时候如果要加一个字段,在appender 怎么处理。网上看见的都是那几个字段,如果要多用一个字段呢?

posted @ 2007-10-08 20:42 ant520 阅读(24) 评论(0) 编辑
1.web.config 
 <configSections>
    
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  
</configSections>


 
<log4net debug="false">
    
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
      
<file value="webapp-log.txt" />
      
<appendToFile value="true" />
      
<layout type="log4net.Layout.PatternLayout">
        
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      
</layout>
    
</appender>

    
<appender name="HttpTraceAppender" type="log4net.Appender.AspNetTraceAppender" >
      
<layout type="log4net.Layout.PatternLayout">
        
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      
</layout>
    
</appender>
    
<!--可以按照时间或文件大小等条件写入到多个文件-->
    
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      
<file value="log-data\rolling-log.txt" />
      
<appendToFile value="true" />
      
<maxSizeRollBackups value="10" />
      
<maximumFileSize value="5MB" />
      
<rollingStyle value="Size" />
      
<staticLogFileName value="true" />
      
<layout type="log4net.Layout.PatternLayout">
        
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      
</layout>
    
</appender>

    
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      
<bufferSize value="2" />
      
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      
<connectionString value="Data Source=localhost;user id=sa;password=sa;Database=MQDB" />
      
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
      
<parameter>
        
<parameterName value="@log_date" />
        
<dbType value="DateTime" />
        
<layout type="log4net.Layout.RawTimeStampLayout" />
      
</parameter>

      
<parameter>
        
<parameterName value="@thread" />
        
<dbType value="String" />
        
<size value="255" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%thread" />
        
</layout>
      
</parameter>

      
<parameter>
        
<parameterName value="@log_level" />
        
<dbType value="String" />
        
<size value="50" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%level" />
        
</layout>
      
</parameter>

      
<parameter>
        
<parameterName value="@logger" />
        
<dbType value="String" />
        
<size value="255" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%logger" />
        
</layout>
      
</parameter>

      
<parameter>
        
<parameterName value="@message" />
        
<dbType value="String" />
        
<size value="4000" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%message" />
        
</layout>
      
</parameter>

      
<parameter>
        
<parameterName value="@exception" />
        
<dbType value="String" />
        
<size value="2000" />
        
<layout type="log4net.Layout.ExceptionLayout" />
      
</parameter>
    
</appender>


    
<logger name="App.Logging">
      
<level value="ALL"/>
      
<appender-ref ref="ADONetAppender" />
    
</logger>

    
<root>
      
<level value="DEBUG" />
      
<appender-ref ref="LogFileAppender" />
    
</root>
  
</log4net>

2.Global.asax
void Application_Start(object sender, EventArgs e) 
{
    log4net.Config.XmlConfigurator.Configure();
}


3. .cs
   ILog log = LogManager.Exists("App.Logging"); 
        log.Info(
"列出操作员信息"new Exception("OPer"));
posted @ 2007-10-08 18:02 ant520 阅读(43) 评论(0) 编辑