0

Ok。動的な宛先メール アドレスを使用するカスタム SmtpAppender を作成しました。

Log4netで提供されたサンプルプロジェクトを使用 - 以下のように動的な電子メールアドレスを使用することができました

log4net.ThreadContext.Properties["ToProperty"] =  "swapneel@stackoverlfow.com";

そして私の カスタムSMTPAppenderで

        string mailMessageTo;
        if (ToProperty == null)
        {
            mailMessageTo = "DoNotReply@StaockOverlfow.com"            }
        else
        {
            var subjectWriter = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
            ToProperty.Format(subjectWriter, loggingEvent);
            mailMessageTo = subjectWriter.ToString();
        }

このコードはサンプル アプリケーションでは機能しますが、「プロジェクト」で使用しようとすると、何らかの理由で機能しません。

Log4net.config に 2 つのアペンダーがあります。EventLog は期待どおりに機能していますが、CustomSmtpAppender はメールを送信していません。この問題を解決するための任意の方向。

1] <appender name ="EmailLogAppender1" type ="MY.Company.ProjectName.Appenders.CustomSmtpAppender, 
    TRS">


2] <appender name ="EventLogAppender" type="log4net.Appender.EventLogAppender" >
4

1 に答える 1

0

log4net の内部デバッグを有効にする と、問題の原因を確認できました。

Add this to your Web.Config:

 <appSettings>
  <add key="log4net.Internal.Debug" value="true" />
 </appSettings>
 <system.diagnostics>
  <trace autoflush="true">
   <listeners>
    <add
     name="textWriterTraceListener"
     type="System.Diagnostics.TextWriterTraceListener"
     initializeData="c:\\log4net.txt" />
   </listeners>
  </trace>
 </system.diagnostics>
于 2012-02-06T10:29:46.013 に答える