2010-02-09 9 views
13

Ich verwende log4net zum Versenden von Mails, wenn ein App-Fehler auftritt. Ich habe das log4net konfiguriert, aber mail wird nicht readd. Im Folgenden ist die Konfiguration:Log4net - smtp appender funktioniert nicht

<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> 

Gibt es noch andere Änderungen, die vorgenommen werden müssen?

+0

bitte den Rest Ihres log4net.config posten und wie Du initialisierst es. –

+0

können Sie sich bei anderen Appendern anmelden? –

+0

Wenn Sie E-Mails bei Fehlern erhalten möchten, sollten Sie den Schwellenwert auf ERROR –

Antwort

10

Überprüfen Sie, ob Sie SMTP-Authentifizierung benötigen.

Auch pufferSize value = "512" bedeutet, dass 512 Nachrichten gesammelt werden, bevor eine E-Mail gesendet wird. Ich bin mir ziemlich sicher, dass du das nicht willst.

+2

Ich änderte es zu 1. immer noch keine Mails bekommen. Gibt es andere Konfiguration, die abgesehen von web.config getan werden muss – Ankit

12

Es sieht gut aus. Um einige log4net Debug-Meldungen in der Konsole sehen Sie die folgenden Zeilen in Ihrem app.config hinzufügen

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

Vielleicht wird dies geben Ihnen einen Hinweis.

+2

Ich fand diesen Artikel hilfreich, beschreibt es ausführlicher, wie dies zu tun ist: http://david.gardiner.net.au/2008/11 /log4nets-smtpappender-with-multiple.html –

+0

Wenn Sie diese App-Einstellung zu Ihrer Webanwendung hinzufügen, beachten Sie, dass log4net die Ablaufverfolgungsinfrastruktur in System.Diagnostics verwendet, um Debuginformationen auszugeben. Sie müssen also sicherstellen, dass die Ablaufverfolgung eingerichtet ist. Sehen Sie sich den Artikel an, mit dem @AaronD verlinkt ist, um ein Beispiel für die Einrichtung der Ablaufverfolgung zur Ausgabe in eine Textdatei zu erhalten. –

4
<lossy value="false" /> 

es half mir

5

Ich fand heraus, dass die appender im Wurzelelement wie solche verwiesen werden muss:

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

Das war es für mich, Prost! –

Verwandte Themen