gpt4 book ai didi

logging - 如何配置log4net SmtpAppender仅在达到特定级别时才向我发送电子邮件?

转载 作者:行者123 更新时间:2023-12-04 18:12:09 24 4
gpt4 key购买 nike

我正在尝试配置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,而一封电子邮件的最后几行出现在 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行的电子邮件,否则忽略缓冲区?

最佳答案

您需要将有损值设置为true:

<lossy value="true" />

在您的配置中,log4net不仅在记录错误时而且还在缓冲区已满时写入缓冲区。有损标志告诉log4net必要时丢弃消息。

关于logging - 如何配置log4net SmtpAppender仅在达到特定级别时才向我发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com