2012-07-03 57 views
9

我記錄了nHibernate生成的所有SQL,因爲我們有一個奇怪的問題。這就產生了巨大的日誌,所以我試圖通過嘗試僅記錄包含特定ID的行來縮短它們。它似乎仍然有一切正在經歷。這裏有什麼奇怪的東西嗎?Log4Net StringMatchFilter不過濾任何東西

<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> 

回答

18

事實證明,你需要添加以下代碼:

<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> 
+2

在您有另一種過濾器,和,你可以將StringMatchFilter移動到另一個之上,並且我相信在這種情況下你不需要 sawe