Sto tentando di configurare un log4net SmtpAppender in modo tale da ottenere solo un messaggio di posta elettronica se viene raggiunto un determinato livello di registro, ma con le ultime 10 righe da inclusi tutti i livelli. Questo è il mio config:Come configurare un log4net SmtpAppender per inviarmi solo e-mail quando viene raggiunto un determinato livello?
<appender name="EmailAppender" type="SmtpSubjectLayoutAppender">
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<bufferSize value="10" />
<lossy value="false" />
...
</appender>
sto esercitando con questo codice:
for (var i = 1; i <= 30; i++)
{
logger.Info("This is just a test message " + i);
}
logger.Error("Error message");
Il problema è che io alla fine per ottenere 3 e-mail, 2 con tutta la registrazione INFO
e uno che ha le ultime righe che si sono verificati prima della ERROR
:
[2012-07-27 18:59:55.657][INFO ][Chase][tid=14972] This is just a test message 23
[2012-07-27 18:59:55.659][INFO ][Chase][tid=14972] This is just a test message 24
[2012-07-27 18:59:55.661][INFO ][Chase][tid=14972] This is just a test message 25
[2012-07-27 18:59:55.662][INFO ][Chase][tid=14972] This is just a test message 26
[2012-07-27 18:59:55.664][INFO ][Chase][tid=14972] This is just a test message 27
[2012-07-27 18:59:55.666][INFO ][Chase][tid=14972] This is just a test message 28
[2012-07-27 18:59:55.667][INFO ][Chase][tid=14972] This is just a test message 29
[2012-07-27 18:59:55.670][INFO ][Chase][tid=14972] This is just a test message 30
[2012-07-27 18:59:55.671][ERROR][Chase][tid=14972] Error message
Come configurare l'appender in modo che ricevo una e-mail con le ultime 10 righe se WARN o superiore si è verificato, b altrimenti ignorare il buffer?
dai un'occhiata a questo post per la risposta corretta: http://stackoverflow.com/questions/13254495/log4net-levelevaluator-ignored-when-buffersize-greater-than-1-for-smtpappender –