2017-08-14 1 views
0

Ich benutze NLog, und ich bin ziemlich neu bei der Protokollierung. Ich habe die Protokolldateien erstellt, aber irgendwie habe ich ein Problem, E-Mails zu senden. Ich habe alle Anweisungen befolgt, kann es aber nicht schaffen.Wie verschicken Sie E-Mails mit NLog?

Mail-Einstellungen in der Konfiguration Tags in web.config:

<system.net> 
<mailSettings> 
    <smtp deliveryMethod="SpecifiedPickupDirectory" from="[email protected]"> 
    <network host="localhost"/> 
    <specifiedPickupDirectory pickupDirectoryLocation="d:\tmp\email"/> 
    </smtp> 

</mailSettings> 
</system.net> 

Und dies ist das Ziel innerhalb der nlog.config:

<target name="Mail" xsi:type="Mail" html="true" subject="Error Received" 
body="${message}" 
to="[email protected]" 
from="[email protected]" 
encoding="UTF-8" 
smtpUserName="[email protected]" 
enableSsl="false" 
smtpPassword="password" 
smtpAuthentication="Basic" 
smtpServer="smtp.some.com" 
smtpPort="25" /> 

Die Regel, die ich verwendet:

 <logger name="*" minlevel="Error" writeTo="Mail" /> 

Und ich den Logger wie folgt aufgerufen:

 Logger logger = LogManager.GetCurrentClassLogger(); 
    try{ //something } 
    catch(Exception ex){ logger.Error(ex); } 

Und ich bin auch ziemlich verwirrt über die Orte der Einstellungen und Konfigurationen. Vielen Dank.

Antwort

1

Der Rumpf ist ein Layout-Format, nicht sicher, ob es das $ {message} -Tag verarbeiten wird. Ändern Sie $ {message] in einen Layoutnamen, der sich in nlog.config befindet, oder lassen Sie ihn für den Standardwert $ {message} $ {newline} aus.

Sie auf der Internal Debugging

Ändern Sie die Top-XML Eltern

drehen kann
<nlog internalLogFile="c:\log.txt" internalLogLevel="Trace"> 

Das könnte Sie zu diesem Thema eine Idee geben. Könnte ein Authentifizierungsproblem mit dem Server oder einem anderen Problem sein.

Da Sie alle Serverinformationen im Ziel angeben, benötigen Sie die web.config-Einstellungen nicht.

Nicht sicher, ob es noch behoben ist, aber Sie sollten ein Timeout = "10000" zum Ziel hinzufügen, damit es die Verbindung schließt.

Es ist ein ziemlich gutes Beispiel in der NLog Wiki für GMail, die

+0

Vielen Dank funktioniert. Ich habe die Dinge ausprobiert, die du gesagt hast, und ich arbeite immer noch daran. Ich denke, es ist ein Authentifizierungsproblem. –

+0

Überprüfen Sie das interne Protokoll dann. Siehe https://github.com/NLog/NLog/wiki/Internal-logging – Julian