2017-08-14 70 views
0

私はNLogを使用しています。私はかなりログに記録しています。私はログファイルを作成しましたが、どういうわけか私は電子メールを送信するのに問題があります。私はすべての指示に従ったが、それを作ることはできない。 web.configファイル内の設定タグでNLogを使って電子メールを送信するには?

メール設定:

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

</mailSettings> 
</system.net> 

そして、これが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" /> 

私が使用されるルール:

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

そして、私はこのようなロガーと呼ばれる:

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

そしてまた私は、設定および構成の場所についてはかなり混乱しています。ありがとうございました。

答えて

1

本文はレイアウトフォーマットであり、$ {message}タグを処理するかどうかはわかりません。 $ {message}をnlog.configにあるレイアウト名に変更するか、$ {message} $ {newline}のデフォルトのままにしておいてください。

あなたはこれがあなたの問題についてのアイデアを与えるかもしれない

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

Internal Debugging

変更にトップXML親を変えることができます。サーバーまたは別の問題に関する認証の問題である可能性があります。

ターゲット内のすべてのサーバー情報を指定しているので、web.configの設定は必要ありません。

固定されているかどうかは不明ですが、ターゲットにtimeout = "10000"を追加して接続を終了する必要があります。

+0

はそんなにありがとう作品GmailのNLog Wikiではかなり良い例があります。私はあなたが言ったことを試して、私はまだそれに取り組んでいます。私はそれが認証の問題だと思う。 –

+0

内部ログを確認します。 https://github.com/NLog/NLog/wiki/Internal-loggingを参照してください。 – Julian

関連する問題