如何使用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还有很多特性可用.

原文地址:https://www.cnblogs.com/xmyy/p/2815643.html