2013-03-20 14 views
8

Ich versuche Log4net zum Senden von E-Mails zu implementieren.
Das Folgende ist mein Code, aber es sendet keine E-Mails.log4net smtp appender keine E-Mails senden

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> 
    <to value="...." /> 
    <from value="..." /> 
    <subject value="Logging Message" /> 
    <smtpHost value="smtp.gmail.com" /> 
    <port value="465"/> 
    <authentication value="Basic" /> 
    <username value="..."/> 
    <password value="..."/> 
    <EnableSsl value="true" /> 
    <bufferSize value="1" /> 
    <lossy value="true" /> 
    <evaluator type="log4net.Core.LevelEvaluator"> 
    <threshold value="WARN"/> 
    </evaluator> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception" /> 
    </layout> 
</appender> 

und

<root> 
    <level value="WARN" /> 
    <appender-ref ref="SmtpAppender" /> 
</root> 

in der AssemblyInfo.cs

[assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)] 

und das ist, wie ich das Log-Objekt

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

Diese Konfiguration für die Dateiausgabe adaequat erstellen dh RollingFileAppender aber nicht für SmtpAppender.

Ich habe viele Lösungen aus dem Internet ausprobiert, war aber nicht wirklich hilfreich.

Bitte zeigen Sie mir die richtigen Anweisungen. thankx im Voraus :)

+0

was die SMTP-tut-Einstellungen wie in der Config-Datei aussehen kann zeigen Sie den Teil der Konfiguration Sie müssen 'SMTP.Appender' – MethodMan

+1

" Keine E-Mails senden "ist wirklich, sehr vage. Das Problem könnte an vielen Orten auftreten. Der erste Schritt besteht darin, einen SMTP-Host zu verwenden, den Sie steuern können. Dies würde das Problem eingrenzen, ob es den Appender verwendet oder nicht, ob der SMTP-Host die Nachrichten ablehnt oder nicht. (Was ein sehr großer Unterschied ist.) Versuchen Sie etwas wie smtp4dev (http://smtp4dev.codeplex.com) als einen lokalen SMTP-Host zu verwenden, um zu testen, ob der Logger zumindest das tut, was er zu tun glaubt. – David

+0

Soweit ich mich erinnere, unterstützt Google Mail SMTP nur über verschlüsselte Verbindung. Und ich bezweifle, dass der einfache stmp appender es feststellen kann. – alex

Antwort

6

Ich bin für SMTP-Nachrichten in Google Mail einen sehr ähnlichen appender verwenden, aber in meinem Fall verwende ich einen anderen Port:

<port value="587"/> 

All andere Einstellungen gleich sind, so geben dass ein Versuch und sehen, ob es für Sie arbeitet. Es ist der Port, den Gmail für TLS verwendet, referenced here.

0

Bitte beachten Sie mein Arbeitsbeispiel. Wenn Sie 2-Faktor-Authentifizierung mit GMail vergessen Sie nicht, ein Passwort zu generieren und verwenden hier:

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> 
    <to value="****" /> 
    <from value="****" /> 
    <subject value="Crash log" /> 
    <smtpHost value="smtp.gmail.com" /> 
    <authentication value="Basic" /> 
    <port value="587" /> 
    <username value="****" /> 
    <password value="****" /> 
    <bufferSize value="10" /> 
    <EnableSsl value="true"/> 
    <lossy value="true" /> 
    <threshold value="DEBUG" /> 
    <evaluator type="log4net.Core.LevelEvaluator"> 
    <threshold value="WARN"/> 
    </evaluator> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date{dd/MM/yyyy hh:mm:ss.fff}&#9;%-5level&#9;%-15logger&#9;%message%newline" /> 
    </layout> 
</appender> 

Hoffe, es hilft.

0

Für diejenigen, die Probleme mit SmtpAppender haben, würde ich empfehlen, Folgendes in Ihren appSettings-Knoten zu setzen.

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

Es wird dann ausgegeben Diagnose wie dies unten Sie in die richtige Richtung zeigen

log4net: Setting Property [From] to String value [[email protected]] 
log4net: Setting Property [Subject] to String value [Kodiak OMS Shortcode service] 
log4net: Setting Property [SmtpHost] to String value [mail.sip.is] 
log4net: Setting Property [Port] to Int32 value [25] 
log4net: Setting Property [BufferSize] to Int32 value [1] 
log4net: Setting Property [EnableSsl] to Boolean value [True] 
log4net: Setting Property [Threshold] to Level value [DEBUG] 
log4net: Setting Property [Lossy] to Boolean value [False] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [ConversionPattern] to String value [%utcdate [%level] - %message%newline%exception] 
log4net: Converter [utcdate] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [ [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [level] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [literal] Option [] - ] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Converter [exception] Option [] Format [min=-1,max=2147483647,leftAlign=False] 
log4net: Setting Property [Layout] to object [log4net.Layout.PatternLayout] 
log4net: Created Appender [EmailLog] 
log4net: Adding appender named [EmailLog] to logger [EmailLogger]. 
log4net: Hierarchy Threshold [] 
log4net:ERROR [SmtpAppender] ErrorCode: GenericFailure. Error occurred while sending e-mail notification. 
System.Net.Mail.SmtpException: Server does not support secure connections. 
    at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) 
    at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) 
    at System.Net.Mail.SmtpClient.GetConnection() 
    at System.Net.Mail.SmtpClient.Send(MailMessage message) 
    at log4net.Appender.SmtpAppender.SendEmail(String messageBody) 
    at log4net.Appender.SmtpAppender.SendBuffer(LoggingEvent[] events) 
Verwandte Themen