在Log4net中发送n个事件后发送电子邮件

时间:2014-10-28 17:10:44

标签: .net log4net log4net-configuration log4net-appender

我有一个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>

1 个答案:

答案 0 :(得分:0)

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

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

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