2010-02-02 10 views
6

Używam log4Net w mojej aplikacji, która również używa nHibernate. Teraz mój eventlogger jest zalewany wiadomościami nHibernate, które chcę tłumić.Jak ukryć komunikat rejestrowania dla nHibernate

Próbowałem tego, ale to nie zadziałało.

<log4net> 
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> 
     <param name="LogName" value="App Log" /> 
     <param name="ApplicationName" value="DataService" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
     <filter type="log4net.Filter.LoggerMatchFilter"> 
     <loggerToMatch value="NHibernate*" /> 
     <acceptOnMatch value="false" /> 
     </filter> 
    </appender> 
    <root> 
     <priority value="ALL"/> 
     <appender-ref ref="EventLogAppender"/> 
    </root> 
</log4net> 

Odpowiedz

11

Możesz dodać rejestrator dla nHibernate i skonfigurować inny poziom:

<logger name="NHibernate" additivity="false"> 
    <level value="WARN"/> 
    <appender-ref ref="RollingFileAppender"/> 
</logger> 
0

trzeba zastosować

<loggerToMatch value="NHibernate.*" /> or <loggerToMatch value="NHibernate" /> 

nie

<loggerToMatch value="NHibernate*" /> 

można znaleźć szczegóły w regule regex