log4net配置文件中的注释导致log4net不工作了!(原创)

好久没有更新blog了,真是有点惭愧。最近项目比较忙,不巧的是今天又发现我的log4net无法正常工作了,通过网上的搜索和反复的测试,终于发现了问题,同时也学到了几个新的技巧,拿出来眩一眩。

还是说一下出的问题吧。

问题描述:log4net不记录任何的错误。


问题解决:由于在配置文件中

None.gif < layout  type ="log4net.Layout.PatternLayout" >
None.gif                
<!-- <header value="-----------Header------------- " />
None.gif                <footer value="-----------Footer-------------" />
None.gif                <conversionPattern value="%newline%date %-5level %logger - %message%newline" />
-->
None.gif                
< conversionPattern  value ="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"   />
None.gif            
</ layout >
存在<!-- -->注释,导致log4net不记录任何错误;另一方面可能由于log4net的监视机制:
ExpandedBlockStart.gif ContractedBlock.gif /**/ /*If Watch is specified and set to true then the framework will watch the configuration file and will reload the config each time the file is modified. 如果设置为true,会在每次文件被修改的时候重新载入
ExpandedBlockEnd.gif
*/

None.gif[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension
= " log4net " ,Watch = true )]
None.gif
None.gif
也就是说我们的修改会立刻反映到log中,但是如果将正确的配置修改为错误,个人理解log4net会忽略此次载入,仍然选择上次正确的配置。我的问题可能就出在这里,由于在正确的配置下测试并加了注释,当时仍然能够生成log,可是当我第二天上班的时候却发现log4net不能工作了,去掉注释应该就可以了。在此提醒广大网友,有时候log4net不工作了,可以试着考虑这方面的因素。

再来说一下我刚学到的技巧

1、Log4net的RollingFileAppender按照日期生成同一后缀名的文件
     
None.gif          < appender  name ="RollingLogFileAppender"  type ="log4net.Appender.RollingFileAppender" >
None.gif            
< file  value ="log\\Log-"   />
None.gif            
< appendToFile  value ="true"   />
None.gif            
< rollingStyle  value ="Composite"   />
None.gif            
< datePattern  value ="yyyy-MM-dd&quot;.htm&quot;"   />
None.gif            
< maxSizeRollBackups  value ="10"   />
None.gif            
< maximumFileSize  value ="10000"   />
None.gif            
< staticLogFileName  value ="false"   />
None.gif            
< layout  type ="log4net.Layout.PatternLayout" >
None.gif                
< conversionPattern  value ="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"   />
None.gif            
</ layout >
None.gif        
</ appender >


这样可以生成Log-yyyy-MM-dd.htm的文件,怎么样不错吧,在这里要感谢9527的晃悠人生的用log4net快速构建asp.net 异常日志

注:在阅读log4net帮助文档的时候发现了一段黑体标注的话,摘录下来
A simple call to LogManager.GetLogger will cause the attributes on the calling assembly to be read and processed. Therefore it is imperative to make a logging call as early as possible during the application start-up, and certainly before any external assemblies have been loaded and invoked.
我个人理解,在做asp.net程序的时候,就是在global.asax里面就声明:

None.gif private   static   readonly  log4net.ILog log  =  log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

不知道这样理解对不对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值