2

我有一个 Log4Net appender,它会为每个错误发送一封电子邮件。我希望它在一些事件之后发送电子邮件,并将所有事件都包含在一封电子邮件中。

这在 log4net 中可能吗?

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net">
    <to value="" />
    <from value="" />
    <subject value="Error email" />
    <smtphost value="" />
    <bufferSize value=""/>
    <lossy value="true"/>
    <evaluator type="log4net.Core.LevelEvaluator,log4net">
        <threshold value="ERROR"/>
    </evaluator>
    <layout type="log4net.Layout.PatternLayout,log4net">
        <conversionpattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline" />
    </layout>
</appender>
4

1 回答 1

0

您可以将bufferSize属性设置为直接在您的电子邮件中接收分组 n 个事件的电子邮件。这已经存在于SmtpAppender.

如果您想更好地控制日志发送给您的内容(例如错误之前的所有 x 事件),您可以使用BufferingForwardingAppender具有所需缓冲区大小和有损态度的 a:将其输出插入您的电子邮件附加程序,您将在上下文中收到错误. 这使您仅在需要时才在上下文中接收错误。

请注意,smtp appender 直接具有 lossy 属性,如果您不需要更多控制日志记录的发生方式,可以直接在链接中使用该技术

于 2014-10-29T08:41:49.520 回答