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" >