1

我想仅在将100 个错误写为 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 ERRORS,是否可以累积它们然后在一封电子邮件中发送它们?

4

1 回答 1

2

No that is not possible. The appender works not over multiple instances of your application. Every time you restart your application, all buffers are empty.

于 2017-03-29T11:16:40.507 回答