Dot-Net
Log4Net StringMatchFilter 沒有過濾任何東西
我正在記錄 nHibernate 生成的所有 SQL,因為我們有一個奇怪的問題。僅此一項就會生成大量日誌,因此我試圖通過僅記錄包含某個 ID 的行來縮短它們。似乎一切都在發生。這裡有什麼奇怪的地方嗎?
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net" > <param name="File" value="nHibernate.txt" /> <param name="AppendToFile" value="true" /> <param name="DatePattern" value="yyyy.MM.dd" /> <layout type="log4net.Layout.PatternLayout,log4net"> <conversionPattern value="%d %p %m%n" /> </layout> <filter type="log4net.Filter.StringMatchFilter"> <stringToMatch value="5764" /> <acceptOnMatch value="true" /> </filter> </appender> <logger name="NHibernate.SQL" additivity="false"> <level value="DEBUG" /> <appender-ref ref="RollingFile" /> </logger>
事實證明,您需要添加以下程式碼:
<filter type="log4net.Filter.DenyAllFilter" />完整的塊如下所示:
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net"> <param name="File" value="nHibernate.txt" /> <param name="AppendToFile" value="true" /> <param name="DatePattern" value="yyyy.MM.dd" /> <layout type="log4net.Layout.PatternLayout,log4net"> <conversionPattern value="%d %p %m%n" /> </layout> <filter type="log4net.Filter.StringMatchFilter"> <stringToMatch value="5764" /> <acceptOnMatch value="true" /> </filter> <!-- need this here! --> <filter type="log4net.Filter.DenyAllFilter" /> </appender> <logger name="NHibernate.SQL" additivity="false"> <level value="DEBUG" /> <appender-ref ref="RollingFile" /> </logger>