2010-02-09 48 views
13

我使用log4net的用於在發生任何應用程序錯誤發送郵件。我配置了log4net,但郵件沒有被recd。以下是配置:log4net的 - SMTP附加器不工作

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> 
     <to value="[email protected]"/> 
     <from value="[email protected]"/> 
     <subject value="ERROR | MRM Application"/> 
     <smtpHost value="relaymail.sapient.com"/> 
     <bufferSize value="512"/> 
     <lossy value="true"/> 
     <evaluator type="log4net.Core.LevelEvaluator"> 
      <threshold value="ALL"/> 
     </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> 

是否還有其他更改需要進行?

+0

請發表您的log4net.config以及如何其餘你正在初始化它。 – 2010-02-09 13:13:17

+0

你能登錄到其他appender嗎? – 2010-02-09 13:58:16

+0

如果你想獲得的錯誤,你應該設置爲ERROR – 2010-02-09 17:54:27

回答

10

檢查是否需要SMTP驗證。

另外BUFFERSIZE值=「512」意味着它將發送電子郵件之前收集512級的消息。我很確定你不想要那個。

+2

我修改爲1,仍然沒有收到任何郵件。 是否有需要以相互的web.config – Ankit 2010-02-09 12:48:37

12

看起來不錯。要查看控制檯一些log4net的調試信息在你的app.config添加以下代碼行

<appSettings> 
    <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 

也許這會給你一個提示。

+2

做我發現這篇文章是有幫助的任何其他配置,它詳細介紹瞭如何做到這一點:http://david.gardiner.net.au/2008/11 /log4nets-smtpappender-with-multiple.html – 2013-01-10 05:23:04

+0

如果您將此應用程序設置添加到您的Web應用程序,請注意,log4net使用System.Diagnostics中的跟蹤基礎結構來輸出調試信息。所以你需要確保你有跟蹤設置。看看@AaronD鏈接到的文章,看一個設置跟蹤輸出到文本文件的例子。 – 2013-09-18 09:46:49

4
<lossy value="false" /> 

它幫助我

5

我還發現,該附加器具有根元素像這樣被引用:

<root> 
     <level value="INFO"/> 
     <appender-ref ref="LogFileAppender"/> 
     <appender-ref ref="ConsoleAppender"/> 
     <appender-ref ref="SmtpAppender"/>  
    </root> 
    </log4net> 
+0

這是給我的,歡呼! – 2014-09-18 17:55:11