log4net logger.IsInfoEnabled為true調試信息卻不寫入文件???
配置是正確的,詳細配置如下:
<log4net> <appender name="DailyRollingFile" type="log4net.Appender.RollingFileAppender"> <file value="log/daily.log" /> <appendToFile value="true" /> <rollingStyle value="Composite" /> <datePattern value="yyyyMMdd" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="3MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%M] - %message%newline" /> </layout> </appender> <appender name="SQLRollingFile" type="log4net.Appender.RollingFileAppender"> <file value="log/sql.log" /> <appendToFile value="true" /> <rollingStyle value="Composite" /> <datePattern value="yyyyMMdd" /> <maxSizeRollBackups value="20" /> <maximumFileSize value="5MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%M] - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="DailyRollingFile" /> </root> <logger name="NHibernate.SQL"> <appender-ref ref="SQLRollingFile" /> <level value="DEBUG" /> </logger> <logger name="NHibernate"> <level value="INFO" /> </logger> </log4net>
不知道什么原因,猜測是可能我的VS出問題了吧(其它項目也是一樣的配置可以生成調試信息),配置會生成文件,但是不記錄調試信息:
只有運行時修改一下這個配置才會生成調試信息,如下
<root> <level value="DEBUG" /> <appender-ref ref="DailyRollingFile" /> </root>
將root節點level的value改為ALL,才會生成調試信息,否則生成的調試信息不回寫入文件daily.log中。
已找到不寫入文件的原因,是由於引入第三方組件的問題引起的,我的是在配置文件中配置(web.config),第三方組件又把log4net包了一下,不知道腫么就把我的配置給覆蓋了。