2014-10-28 68 views
2

我有一個Log4Net appender,它爲每個錯誤發送一封電子郵件。 我希望它在一些事件後發送電子郵件,並在一封電子郵件中包含所有事件。在Log4net發生n次事件後發送電子郵件

在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

沒有什麼內置的,我知道的更多的控制權,但檢查[這篇文章](http://andrewchaa.me.uk/2013/01/07/sending-errors-in-a-roll-up-digest-email-with-log4net/)關於擴展'SmtpAppender'。 – 2014-10-28 17:23:27

回答

0

您可以設置bufferSize屬性收到一封電子郵件,直接在你的電子郵件分組n個事件。這已經存在於SmtpAppender中。

如果你想在什麼日誌向您發送(例如,所有X事件以前的錯誤),你可以使用一個BufferingForwardingAppender您所需的緩衝區大小和有損的態度更多的控制權:它的輸出插入到你的電子郵件的appender和你將在上下文中收到錯誤。這可以讓您只在需要時纔會收到上下文中的錯誤。

請注意,SMTP附加器直接擁有有損屬性,可以使用的技術的直接鏈接,如果你不需要日誌記錄是如何發生的