log4net 配置的例子
web.config 文件中加入:
<configSections>
<!-- log4net 日志配置. -->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<!-- log4net 日志配置. -->
<log4net>
<root>
<!-- 当前的记录日志的级别. -->
<level value="INFO" />
<appender-ref ref="RollingFileAppender_DEBUG" />
<appender-ref ref="RollingFileAppender_INFO" />
<appender-ref ref="RollingFileAppender_WARN" />
<appender-ref ref="RollingFileAppender_ERROR" />
</root>
<appender name="RollingFileAppender_DEBUG" type="log4net.Appender.RollingFileAppender">
<!-- 日志文件放到哪个目录下 -->
<file value="MyLogFile\" />
<appendToFile value="true" />
<!-- 每天产生一个日志文件 -->
<rollingStyle value="Date" />
<!-- 产生的日志文件形式为: YYYYMM\Log_DEBUG_yyyyMMdd.csv 的形式 (也就是每个月一个目录,这个目录下放当月的每一天的日志文件) -->
<datePattern value="yyyyMM\\"Log_DEBUG_"yyyyMMdd".csv"" />
<staticLogFileName value="false" />
<!-- 输出日志的内容: "日期 时间", "日志级别", "日志来源" , "日志信息" -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=""%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}","%level","%logger","%message"%newline" />
</layout>
<!-- 本日志文件, 记录的日志范围是 DEBUG to DEBUG ( 如果偷懒,只用一个文件的话,那么这里就直接 DEBUG to ERROR ) -->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="DEBUG" />
<param name="LevelMin" value="DEBUG" />
</filter>
</appender>
<!--
下面的配置内容, 与上面的基本一样, 区别在于 文件名, 与记录日志的级别, 因此就不重复写 注释信息了。
配置的目的,是 DEBUG、INFO、WARN、ERROR 分别分4个文件独立存放。 每天自动更新。
开发环境下,是把 日志级别调整为 DEBUG 或 INFO
实际运行环境下,是把 日志级别调整为 INFO 或 WARN
-->
<appender name="RollingFileAppender_INFO" type="log4net.Appender.RollingFileAppender">
<file value="MyLogFile\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMM\\"Log_INFO_"yyyyMMdd".csv"" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=""%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}","%level","%logger","%message"%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="INFO" />
<param name="LevelMin" value="INFO" />
</filter>
</appender>
<appender name="RollingFileAppender_WARN" type="log4net.Appender.RollingFileAppender">
<file value="MyLogFile\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMM\\"Log_WARN_"yyyyMMdd".csv"" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=""%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}","%level","%logger","%message"%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="WARN" />
<param name="LevelMin" value="WARN" />
</filter>
</appender>
<appender name="RollingFileAppender_ERROR" type="log4net.Appender.RollingFileAppender">
<file value="MyLogFile\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMM\\"Log_ERROR_"yyyyMMdd".csv"" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=""%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}","%level","%logger","%message"%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="ERROR" />
<param name="LevelMin" value="ERROR" />
</filter>
</appender>
</log4net>
Global.asax 文件中加入:
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
System.Diagnostics.Debug.WriteLine("Global.asax Application_Start ... ... ");
string webConfigFile = Server.MapPath("web.config");
if (System.IO.File.Exists(webConfigFile))
{
System.Diagnostics.Debug.WriteLine("log4net.Config.XmlConfigurator.Configure...");
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(webConfigFile));
}
}
页面.aspx.cs 文件中加入:
using log4net;
public partial class 页面 : System.Web.UI.Page
{
/// <summary>
/// 日志处理类.
/// </summary>
private ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
protected void Page_Load(object sender, EventArgs e)
{
logger.Info("Test...");
}
}