log4net是用于.net framework的日志框架。
我主要参考这个教程:
http://www.cnblogs.com/dragon/archive/2005/03/24/124254.aspx
由于原教程比较复杂,而且跟新版的log4net有一些不同,所以我整理出了以下最基本的log4net使用方法:
首先在程序的目录下(注意不是源文件的目录)建立如下一个xml文件(名字随意,假设是"MyLogger.Config")
(PS:由于使用utf-8编码,建议不要在配置文件中使用中文)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<!-- from here we will setup log4net-->
<log4net>
<root>
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="MyLogger">
<level value="DEBUG"/>
</logger>
<!-- define one appender for log file -->
<appender name="LogFileAppender"
type="log4net.Appender.FileAppender" >
<param name="File" value="log-file.txt" /><!-- file name is log-file.txt -->
<param name="AppendToFile" value="true" />
<!-- define format -->
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header] "/>
<param name="Footer" value="[Footer] "/>
<param name="ConversionPattern"
value="%date [%thread] %-5level %logger [%ndc] - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<!-- define one appender for console log-->
<appender name="ConsoleAppender"
type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern"
value="%date [%thread] %-5level %logger [%ndc] - %message%newline"/>
</layout>
</appender>
</log4net>
</configuration>
之后就是写程序,首先在工程add reference,添加对log4net.dll的引用
然后在程序中读取这个文件:
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("MyLogger.Config"));
其中的MyLogger.Config就是配置文件的名称,根据实际情况改成自己的配置文件名即可
然后就可以使用log4net做日志记录了:
log4net.ILog logger = log4net.LogManager.GetLogger("MyLogger");//获取一个全局的名称为“MyLogger”的logger
log.Debug("message");//在日志中输出一段Debug级别的信息
log.Info("message");//在日志中输出一段Info级别的信息
以下是完整程序:
class Program
{
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("MyLogger.Config"));
log4net.ILog logger = log4net.LogManager.GetLogger("MyLogger");
logger.Debug("test debug message");
logger.Info("test info message");
}
}
可以看到上面的日志级别(Debug、Info),根据配置文件的设置,有些级别的内容会被屏蔽掉,如果你想在不同情况下输出不同的东西,就可以借助修改配置文件实现。更详细的方法可参考引用的教程(地址见页首)。