特定のログレベルに達した場合にのみ電子メールを受信するように log4net SmtpAppender を構成しようとしていますが、すべてのレベルの最後の 10 行が含まれています。これは私の設定です:
<appender name="EmailAppender" type="SmtpSubjectLayoutAppender">
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<bufferSize value="10" />
<lossy value="false" />
...
</appender>
私はこのコードでそれを実行しています:
for (var i = 1; i <= 30; i++)
{
logger.Info("This is just a test message " + i);
}
logger.Error("Error message");
問題は、最終的に 3 通の電子メールを受信することです。2 通にはすべてのINFO
ログが記録され、1 通には の前に発生した最後の数行が含まれてい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
WARN 以上が発生した場合に最後の 10 行の電子メールを受信するようにアペンダーを構成するにはどうすればよいですか? それ以外の場合はバッファーを無視しますか?