我想在 100 ERRORS 写成html表之后发送电子邮件(这是SmtpExtendedAppender
的目的,迭代所有的消息已保存)但我不确定如何访问它们。
这是我的app.config:
<appender name="SmtpAppender" type="log4net.Appender.SmtpExtendedAppender">
<authentication value="Basic" />
<password value="xxxxxx"/>
<username value="xxxxxxxx"/>
<from value="myemail@gmail.com" />
<to value="toemail@gmail.com" />
<smtpHost value="smtp.gmail.com" />
<isBodyHtml value="true" />
<bufferSize value="100" />
<EnableSsl value="true"/>
<subject value="test logging message" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%logger]%newlineUsername: %property{username}%newline%level - %message%newline%exception" />
</layout>
</appender>
这是我的控制台应用程序:
static void Main(string[] args)
{
Console.WriteLine("hello world");
log.Error("This is my first error message");
log.Error("This is my second error message");
Console.ReadLine();
}
我不完全理解log4net缓冲区大小是如何工作的,即使我给它一个值100,每次运行我的控制台应用程序时它都会向我发送2封电子邮件。
如果我将运行此应用程序50次以进入 100错误,是否可以累积它们然后通过一封电子邮件发送它们?
答案 0 :(得分:2)
不,这是不可能的。 appender不适用于应用程序的多个实例。每次重新启动应用程序时,所有缓冲区都为空。