春鱼·编程观点

技术在进步, 世界在变得美好...

log4net 配置与应用

log4net是apache组织开发的日志组件, 同其姐妹log4j一样, 是一个开源项目. 可以以插件的形式应用在你的系统中. 下面仅说明如何应用在web forms项目中. 做为主要的日志输出组件.

1. 首先你应该下载log4net.dll并引入到你的项目References中.
2. 需要修改你的global.asa.cs. 配置application对象启动的时候加载log4net配置. 这一步是不可以缺少的.
protected void Application_Start(Object sender, EventArgs e)
{
   log4net.Config.DOMConfigurator.Configure();
}
3. 可以看到上面的代码没有参数. 可见是载入了缺省配置. 该配置必须设置于web.config中.
在web.cofig根节点 configuration 中加入如下section:
<configSections>
  
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
4.该 config section 声明了名为 log4net 的另外一个config section. 后者必须位于web.config根节点 configuration 下: 以下是一个sample:
<log4net debug="false">
    
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
        
<param name="File" value="XxxxApplication.log.txt" />
        
<param name="datePattern" value="MM-dd HH:mm" />
        
<param name="AppendToFile" value="true" />
        
<layout type="log4net.Layout.PatternLayout">
            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        
</layout>
    
</appender>
    
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" >
        
<layout type="log4net.Layout.PatternLayout">
            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        
</layout>
    
</appender>
    
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
        
<layout type="log4net.Layout.PatternLayout">
            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        
</layout>
    
</appender>
    
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        
<param name="File" value="_LogData\Log.txt" />
        
<param name="AppendToFile" value="true" />
        
<param name="MaxSizeRollBackups" value="10" />
        
<param name="MaximumFileSize" value="5MB" />
        
<param name="RollingStyle" value="Size" />
        
<param name="StaticLogFileName" value="true" />
        
<layout type="log4net.Layout.PatternLayout">
            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        
</layout>
    
</appender>
    
<root>
        
<level value="DEBUG" />
        
<appender-ref ref="LogFileAppender" />
    
</root>
</log4net>

5. 以上定义了多个appender. 简单来说, 每一个 appender 都是一种输出介质.
6. root节点指定了选用的 appender. 本例选用了LogFileAppender. (文本文件输出). 在Appender定义中定义了输出的格式. 和目标文本文件所在位置. (起始位置是应用程序根目录. (web.config所在目录).
7. 到目前位置就配置好了log4net. 可以在我们的应用中直接使用了.
8. 以下说明应用方法:
要输出日志, 必须首先得到带有一个别名的logger.
使用以下命令
(C#):
log4net.ILog Logger logger = log4net.LogManager.GetLogger(this.GetType());
(可以直接使用GetType得到当前类名)
之后调用
logger.Info(string message);
logger.Error(string message);
logger.Debug(string message);
即可输出日志.

调试后可查找应用程序根目录下是否已经自动创建XxxxxApplication.log.txt文本文件.以及是否正确输出了日志.

log4net是一个非常完善的日志组件. 有着强大的可配置性. 有助于提高开发效率.

关于log4net的配置. 可参考apache组织的官方文档位于
http://logging.apache.org/log4net

posted on 2004-07-02 15:28 春鱼 阅读(11555) 评论(8)  编辑 收藏 网摘 所属分类: 架构思想(Architechture)

评论

#1楼  2004-07-02 15:36 Jay [未注册用户]

我不得不说. 管理员. 这里的代码粘贴好像有Bug吧. 刚才我粘贴那几段代码的时候竟然粘上了别人写得一段代码. 好可怕. 后面只好不用代码粘贴了.   回复  引用    

#2楼  2004-07-02 15:52 dudu      

我仔细检查一下代码。我是用模态窗口返回插入的代码的。   回复  引用  查看    

#3楼  2004-07-02 22:30 dudu      

我查过代码了, 是缓存惹的祸.在插入代码的页面, 我设置了两分钟的缓存。现在已经取消缓存了   回复  引用  查看    

#4楼  2004-07-03 12:47 unruledboy(灵感之源)      

不过现在仍然有这个乱版的效果。   回复  引用  查看    

#5楼  2005-03-11 11:52 ywh      

我试过了,第一次好用,但是在配置就出不来信息了,只是建了一个文件,里面没有信息。   回复  引用  查看    

#6楼  2005-03-11 11:54 ywh      

现在我想在Oracle数据库中获得错误信息的捕捉,能否实现,请指教。
网上也有这样的例子,但是我配置了,还是不好用,表中没有显示错误的信息。   回复  引用  查看    

#7楼  2005-03-22 16:19 zhengyun [未注册用户]

如果再配置就不输出日志了,请检查您的配置是否正确。如果log4net并没有定义您配置的配置节点对应的语义,那么log4net不会通知您的,也不会有输出日志。   回复  引用    

#8楼  2007-10-26 13:49 zjyksy [未注册用户]

我照着试了试。一切正常。就是打开生成的log文件时候,说文件正在被使用。不知道该怎么释放啊   回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2004-07-02 15:33 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: