2011-06-23 25 views
3

は、私は私のSMTPアペンダの作業を取得する問題が生じています:SMTPアペンダー - log4netの問題

私はフォローの設定ファイルの設定があります。

<log4net> 
<appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 
    <param name="File" value="folder\\filelog.log"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/> 
    </layout> 
</appender> 
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> 
    <to value="[email protected]" /> 
    <from value="[email protected]" /> 
    <subject value="Error in site" /> 
    <smtpHost value="111.111.111.111" /> 
    <authentication value="1"/> 
    <username Value="[email protected]" /> 
    <password value="password" /> 
    <port value="25" /> 
    <bufferSize value="1" /> 
    <lossy value="false" /> 
    <threshold value="ALL"/> 
    <evaluator type="log4net.Core.LevelEvaluator"> 
    <threshold value="ALL"/> 
    </evaluator> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%newline%date [%thread] %-5level %logger [%property] - %message%newline%newline%newline" /> 
    </layout> 
</appender> 

<logger name="File"> 
    <level value="All" /> 
    <appender-ref ref="LogFileAppender" /> 
</logger> 

<logger name="EmailAppender"> 
    <level value="ALL" /> 
    <appender-ref ref="SmtpAppender" /> 
</logger> 

を私が見るにエラーをログに記録しようとしていますメールを受け取った場合:

  log4net.Config.XmlConfigurator.Configure(); 
     ILog logger = LogManager.GetLogger("EmailAppender"); 
     logger.Error("uyyy: " + DateTime.Now.ToLongDateString()); 

メールが届いていません。 「ファイル」に切り替えると、正しくログされます。

私は追加した資格情報が正しいことを知っていますが、問題なくシステムのどこかで使用しています。

EDIT:上記の "blanked out"設定で実行しようとしましたが、続行する前にlogger.Error行を実行するのに時間がかかりました。私の実際の詳細では、すぐに、すぐに実行されます。

答えて

1
から

からhttp://logging.apache.org/log4net/release/sdk/log4net.Appender.SmtpAppender.html

「CAUTION認証およびサーバーのポートを設定するには、MS .NET 1.1のランタイム上でのみ利用できますこれらの機能を有効にするには、あなたがバージョンのを使用していることを確認する必要があります。 MS .NET 1.1フレームワークに対して構築され、MS .NET 1.1ランタイムでアプリケーションを実行しているlog4netアセンブリです。他のすべてのプラットフォームでは、ポート25(デフォルト)をリッスンしているサーバーに認証されていないメッセージを送信するだけです"

確かにわかりませんが、それは1.1よりも後でビルドされたアプリケーションを意味するため、認証は機能しません。 1.1以降を使用していますか?

+0

エラーをトレースすることができますの終わりにこれを追加します。このノートはまだウェブサイト上にあっても古くなっているようです。誰でも? – Askolein

0

は、私はDOTNET 4.5でテストし、それが魅力のように働いconfigセクション

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

あなたは

関連する問題