人应该根据未来计划现在,不能根据现在计划未来
在.NET项目中使用log4net
log4net是Apache开发的一个用于.NET应用程序的logger工具,log4net是开源的,使用Apache License, Version 2.0开源协议。
可以到这里下载log4net: http://logging.apache.org/log4net/download.html
下面来具体介绍下如何使用log4net:
1. 将log4net.dll这个assembly加到项目的引用中。
2. 初始化configuration file, 指定要使用的configuration类型 ,支持的类型有:XmlConfigurator 和 DOMConfigurator
例如:初始化一个XmlConfigurator并指定当前项目的config文件为provider:
log4net.Config.XmlConfigurator.Configure();
XmlConfigurator.Configure()这个方法有很多个重载,可以在重载方法的参数中指定config文件的路径。
如果是Web Applciation,可以在Global.asax的Application_Start方法中作这个初始化,这样整个Web Application就不需要在每次使用log4net的时候都初始化configuration了。
例如,我的Global.asax文件中Application_Start内容是这样的:
protected void Application_Start(object sender, EventArgs e)
{
//The Log4net component needs initial configure at the start of the application.
log4net.Config.XmlConfigurator.Configure();
}
3. 修改项目的config文件:
a) 把<section name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler, log4net” />加入到<configSections>与</configSections>之间。
b) 添加下面的示例到<configuration>与</configuration>中:
<log4net>
<appender name="LogUtility" type="log4net.Appender.RollingFileAppender">
<file value="LOG.txt"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="512KB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<header value="[Started]
"/>
<footer value="[Stopped]
"/>
<conversionPattern value="%date [%thread] %-5level - %message%newline"/>
</layout>
</appender>
<root>
<!-- Possible levels: DEBUG, INFO, WARN, ERROR, FATAL, ALL-->
<!-- logger will only accept event that are at this level or above. -->
<level value="ALL"/>
<appender-ref ref="LogUtility"/>
</root>
</log4net>
这里使用RollingFileAppender将需要log的信息写入文件中,log4net还有其它很多的Appender:
AspNetTraceAppender
BufferingForwardingAppender
ColoredConsoleAppender
ConsoleAppender
EventLogAppender
FileAppender
ForwardingAppender
MemoryAppender
NetSendAppender
OutputDebugStringAppender
RemotingAppender
RollingFileAppender
SmtpAppender
SmtpPickupDirAppender
TraceAppender
UdpAppender
可以到http://logging.apache.org/log4net/release/config-examples.html查阅如何使用这些Appender。
这里需要注意
<level value=”ALL”/>,这个配置很关键,它决定了哪些级别的信息会被log,只有那些比设置的级别高的level才会被log。
4. 在代码中使用log4net:
try
{
......
}
catch(Exception ex)
{
log4net.ILog logger = log4net.LogManager.GetLogger("LogUtility");
logger.Error("nn"+DateTime.Now.ToLongDateString(), ex);
}
这里log4net.LogManager.GetLogger(“LogUtility”)是获取在配置文件中名为LogUtility的logger,
logger.Error(…)用来将exception写入到配置文件中定义的Appender中。
总结:
1. log4net的功能很强大,其自身带了很多我们常用的几种Appender,借助自带的Appender,我们已经可以实现绝大部分的log功能,当然,我们也可以实现自己的Appender,需要实现log4net.Appender.AppenderSkeleton这个abstract类
2. 可以为同一个需要log的信息使用两个或者以上的Appender,例如:可以同时使用File和Database作为Appender。
这篇文章只是简单的介绍了如何在项目中使用log4net,更多的说明及SDK请移驾到log4net的官方网站。
如果你的项目中有更深层次的需求请在此留言或者直接联系我。
相关文章:
| 打印文章 | 这篇文章由艾榕于2010年02月25日 6:14 下午发表在.NET, 技术。你可以订阅RSS 2.0 也可以发表评论或引用到你的网站。 |
大约4月前
以前从事JAVA开发的时候一直使用log4j,现在搞.net了,都是小项目,几乎都想不起这么一个东西了
[回复]
大约4月前
真不错
[回复]
大约4月前
谢了!
[回复]