确定。我创建了自定义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个appender。 EventLog按预期工作,但CustomSmtpAppender不发送任何电子邮件。 解决此问题的任何方向。
1] <appender name ="EmailLogAppender1" type ="MY.Company.ProjectName.Appenders.CustomSmtpAppender,
TRS">
2] <appender name ="EventLogAppender" type="log4net.Appender.EventLogAppender" >
答案 0 :(得分: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>