0

好的。我创建了自定义SmtpAppender以使用动态电子邮件地址。扩展log4net SmtpAppender动态到电子邮件地址

使用样本项目,log4net的给定的 - 我已经成功地使用动态的电子邮件地址,如下

log4net.ThreadContext.Properties["ToProperty"] = "[email protected]"; 

,并在我的定制SMTPAppender

 string mailMessageTo; 
     if (ToProperty == null) 
     { 
      mailMessageTo = "[email protected]"   } 
     else 
     { 
      var subjectWriter = new StringWriter(System.Globalization.CultureInfo.InvariantCulture); 
      ToProperty.Format(subjectWriter, loggingEvent); 
      mailMessageTo = subjectWriter.ToString(); 
     } 

这段代码工作在示例应用程序中,但是当我尝试在我们的“Project由于某种原因不能正常工作

我在Log4net.config中有2个appender。 EventLog按预期工作,但CustomSmtpAppender未发送任何电子邮件。 任何方向来解决这个问题。

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


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

回答

0

我启用log4net internal debugging,可以看到是什么原因导致的问题。

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> 
相关问题