Ho configurato log4net con un RollingLogFileAppender e SmtpAppender, con l'intenzione di registrare il livello di debug al RollingLogFileAppender e fatale solo al SmtpAppender:Log4Net LevelEvaluator Ignorata in bufferSize maggiore di 1 per SmtpAppender
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="[email protected]" />
<from value="[email protected]" />
<subject value="Fatal Error" />
<smtpHost value="smtp.test.com" />
<SMTPPort value="366"/>
<Username value="[email protected]"/>
<Password value="password"/>
<bufferSize value="1" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="FATAL"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="SmtpAppender" />
</root>
Questo funziona perfettamente finché non aumento il bufferSize. Quando lo faccio, tutti i livelli vengono inviati via e-mail e il log4net.Core.LevelEvaluator sembra essere ignorato. Ho anche provato a utilizzare LevelRangeFilter e LevelMatchFilter ma con questi configurati non ho ricevuto alcuna email.
Grazie Stefan, non ho apprezzato il fatto che non stavo ricevendo tutti i log fino a quando non è stato generato il FATAL. Ora capisco, quella configurazione funziona davvero bene per me! Grazie ancora per la risposta. –