22. 2. 2017

Log4net - jak zafiltrovat level logování

V prvním appenderu říkám, že chci logovat do alarmlog_info.txt a že úroveň logování bude pouze INFO, což jsem definoval filter parametrem.
Řádek <filter type="log4net.Filter.DenyAllFilter" /> říká, že po zalogování INFO zpráv, se již nebude pokračovat.
To samé pak udělejte i u souboru alarmlog_error.txt s tím, že level je ERROR (nebo TRACE, WARN či DEBUG).
A jako poslední ještě definujte logger pro oba appendery.

<appender name="AlarmLog_info" type="log4net.Appender.RollingFileAppender">
   <file value="c:\temp\alarmlog_info.txt"/>
   <appendToFile value="true"/>
   <maxSizeRollBackups value="20"/>
   <maximumFileSize value="50MB"/>
   <staticLogFileName value="true"/>
   <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
   <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="%d;text:%m%n"/>
   </layout>
   <filter type="log4net.Filter.LevelMatchFilter">
     <levelToMatch value="INFO"/>
   </filter>
   <filter type="log4net.Filter.DenyAllFilter" />
</appender>

<appender name="AlarmLog_error" type="log4net.Appender.RollingFileAppender">
   <file value="c:\temp\alarmlog_error.txt"/>
   <appendToFile value="true"/>
   <maxSizeRollBackups value="20"/>
   <maximumFileSize value="50MB"/>
   <staticLogFileName value="true"/>
   <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
   <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%d;text:%m%n"/>
   </layout>
   <filter type="log4net.Filter.LevelMatchFilter">
     <levelToMatch value="ERROR"/>
   </filter>
   <filter type="log4net.Filter.DenyAllFilter" />
</appender>

<logger name="MonitoringCrm.Alarm" additivity="true">
   <appender-ref ref="Alarmlog_info"/>
   <appender-ref ref="Alarmlog_error"/>
   <level value="ALL"/>
</logger>


Zdroje:
https://www.codeproject.com/kb/dotnet/log4net_tutorial.aspx

Žádné komentáře:

Okomentovat