日期:2014-05-20  浏览次数:20737 次

路过的大牛帮看看,log4net记录数据库日志,第一次记录耗时长
开发用到了log4net日志框架,但是发现一个问题,记录数据库日志时第一次记录耗时长,大概有7-8秒左右,有时甚至超过10秒,之后再次记录数据库日志就是正常的了。

在网上找到一个解决方法,配置文件中添加
<filter type="log4net.Filter.LoggerMatchFilter">
 <LoggerToMatch value="NHibernate" />
 <AcceptOnMatch value="False" />
</filter>
但是测试之后,发现没有效果。

有谁遇到过这种情况吗,帮忙看下。

------解决方案--------------------
这是我的配置
<log4net debug="false">
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Size"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<param name="maximumFileSize" value="10000KB"/>
<param name="maxSizeRollBackups" value="1"/>
<param name="staticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<header value="[Header]"/>
<footer value="[Footer]"/>
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline"/>
</layout>
</appender>
<root>
<priority value="DEBUG"/>
<appender-ref ref="rollingFile"/>
</root>
<logger name="NHibernate">
<level value="ERROR"/>
</logger>
<logger name="NHibernate.SQL">
<level value="DEBUG"/>
</logger>
</log4net>
------解决方案--------------------
我大部分都是通过rolling log file的方式记录。

filter只是过滤哪些assambly不用记录,解决不了你的记录到db延时的问题。

我平时用rolling log file的时候也发现有记录有延时。