Log4net简介及在项目中的简单应用

  Log4net 是一个开源的类库,可以通过它将.NET 应用程序的日志记录到多种介质中(控制台、SMTP或者文本文件等)。Log4net 起源自Java应用中的log4J.

  日志的记录通过一个或多个logger来实现。logger为日志信息提供了五种不同级别:

  1.Debug

  2.Information

  3.Warnings

  4.Error

  5.Fatal

  每一个logger可以记录指定级别的日志信息,因此,5种不同级别的信息处理可有效帮助开发,而当项目发布后,你可以选择只记录Fatal级别的日志,这一切的配置都非常简单。

  如何指定日志信息保存的地址呢?Appender用于指定保存日志信息保存的路径。利用Appender可以将日志信息保存至数据库、email等。你可以通过配置使用多个Appender,用于向多个介质中存储日志信息并可控制记录不同级别的日志信息。Appender的配置在一个外置的XML文件中,配置它是一件极其简单的事。

  OK,我们知道通过Logger将日志信息保存到Appender指定的路径,而怎么指定日志信息保存的格式呢?Log4net通过配置每一个Appender的layouts来指定记录日志信息的格式。这些layouts指定日志信息是保有存为简单的文本还是XML文件,或是不是记录日志信息生成的时间等。

  下面用代码说明如何使用Log4net

  *.cs代码:

以下为引用的内容:
using log4net;
using log4net.Config;

class LogTest
{
private static readonly ILog logger = LogManager.GetLogger(typeof(LogTest));

static LogTest()
{
XmlConfigurator.Configure();
}
static void Main(string[] args)
{
logger.Debug("Here is a debug log.");
logger.Info(".... and an Info log.");
logger.Warn(".... and a warning.");
logger.Error(".... and an error.");
logger.Fatal("... and a fatal error.");
}
}
config文件的配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>

<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="LogTest.text"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n"/>
<param name="Footer" value="[Footer]\r\n"/>
<param name="ConversionPattern" value="%d %-5p -- Line:%L %F %c %m%n"/>
</layout>
</appender>

<root>
<level value="Info"/> <!--value可以指定Debug/Info/Warn/Error/Fatal中的任意一种-->
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="ConsoleAppender"/>
</root>

</log4net>
</configuration>

控制台输出:

console

文本输出:

txt

解释下layout 的参数ConversionPattern的值的含义:

%d:当前语句执行的时间

%-5p:日志当前级别(Debug,Info,eg)

%L:输出语句所在的行号

%F:输出语句所在的文件名

%c:当前日志对象的名称

%m:当前记录的日志信息

%n:换行

%t:当前语句所在的线程ID

%r:输出程序从运行至执行当前语句消耗的毫秒数

%-数字:表示该项的最小长度,不够用空格填充(如%-5p)

注意:%后的字母区分大小写

参考:http://www.codeproject.com/KB/trace/log4net_intro.aspx

http://blog.csdn.net/hzfu007/archive/2007/09/13/1783185.aspx

希望使用多个Appender对不同级别的日志信息分开记录的使用可参照:http://www.codeproject.com/KB/trace/log4net_intro2.aspx

转载请注明:代码家园 » Log4net简介及在项目中的简单应用

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)