如何使用log4net[转]
介绍
Log4net是一个开源的组件.可以使.net程序记录日志并输出成各种格式.
使用代码
Log4net可以提供简便的方式去使用强大的日志功能.步骤如下:
1.获取最新版本的Log4net组件并添加引用到程序
2.增加以后行到你的AssemblyInfo.cs文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile="Web.config",Watch=true)] //For log4net 1.2.10.0
上面的语句提供了配置log4net参数的配置文件
3.添加以下节点到web.config
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\TestProj\\TestLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
上面的节点定义了配置记录日志的参数
RollingLogFileAppender描述记录日志的方式,这代表日志将被写在一个文件,该文件当满的话会自动增加.这里有其他可用的途径来保存日志.
layout负责格式化日志请求,然而保存日志途径的定义和日志输出的格式有关.上边layout输出的格式如下:
2006-07-14 20:26:04,033 [1736] ERROR Utility [PayStub] - Could not find a part of the path
"c:\inetpub\wwwroot\TestProj\Template\PayStub.xml"
4.如果你想要log4net增加自己的诊断信息,须在web.config文件中加入以下代码:
<appSettings>
<add key="log4net.Internal.Debug" value="true" />
</appSettings>
在system.web节点下如以下代码:
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\\TestProj\\TestProjlog4net.txt" />
</listeners>
</trace>
</system.diagnostics>
5.在代码页面进行以下步骤:
a.添加名字空间
using log4net;
b.添加有类定义的声明
private static readonly ILog log = LogManager.GetLogger(typeof(TestPage1).Name);
或
private static readonly ILog log = LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
6.现在你可以用下面的语句记录日志了:
if (log.IsErrorEnabled)
{
log.Error("Page Load failed : " + ex.Message);
}
或
if (log.IsDebugEnabled)
{
log.Debug("Application loaded successfully.");
}
现在我们已经接触到log4net的皮毛了,log4net还有很多特性可用.