logger 是负责日志的记录者,会绑定一个或多个 Appender
appender 提供记录的介质
layout 负责把记入的内容格式化,用于设置日志字符串的格式。
filter 负责把内容进行筛选
Log4net 允许我们通过该参数调整日志记录级别,只有高于或等于该级别的日志才会被记录下来。
当在root和logger中重复设定相同的appender时,你会发现同一日志信息将被记录两次
<logger>标签
预定义了一个具体日志对象的设置,通过调用LogManager.GetLogger("----")函数,你可以检索具有该名字的日志
<appender> 标签
转换模式(ConversionPattern)
每种转换符号都以%开始,后面跟着一个格式符号和换符号。
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"));
<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) 编辑




