gpt4 book ai didi

asp.net - 防止 log4net 通过 SMTP 发送重复问题

转载 作者:行者123 更新时间:2023-12-03 23:29:05 26 4
gpt4 key购买 nike

我们已经使用 SMTP 将我们的 log4net 与 Jira 桥接起来。

现在我们担心,由于该站点是公开的,如果我们在生产环境中遇到很多问题,Jira 服务器会发生什么。

我们已经过滤了严重和致命,但我们希望在 log4net 上看到一些累加器服务或一个简单的过滤器,它可以识别重复问题并防止它们通过电子邮件发送。最好不必更改错误报告代码,因此最好使用配置解决方案。

我想将日志转储到数据库中,然后创建一个单独的监听器,一些智能代码将是一个(昂贵的)替代方案。

最佳答案

也许 this足以满足您的要求:

它基本上限制了在给定时间跨度内发送的电子邮件数量。我认为根据您的需要定制它应该很容易。我做了类似的事情,甚至在特定时间段内丢弃消息:

public class SmtpThrottlingAppender : SmtpAppender
{
private DateTime lastFlush = DateTime.MinValue;
private TimeSpan flushInterval = new TimeSpan(0, 5, 0);

public TimeSpan FlushInterval
{
get { return this.flushInterval; }
set { this.flushInterval = value; }
}

protected override void SendBuffer(LoggingEvent[] events)
{
if (DateTime.Now - this.lastFlush > this.flushInterval)
{
base.SendBuffer(events);
this.lastFlush = DateTime.Now;
}
}
}

刷新间隔可以像其他 appender 的正常设置一样配置:

<flushInterval value="01:00:00" />

关于asp.net - 防止 log4net 通过 SMTP 发送重复问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2409485/

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