扩展 log4net SmtpAppender 以实现动态收件人电子邮件地址

发布于 01-03 00:20 字数 1407 浏览 5 评论 0原文

好的。我创建了自定义 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();
        }

此代码在示例应用程序中正在运行但是当我尝试在我们的“项目”中使用它时,由于某种原因无法工作

我在 Log4net.config 中有 2 个附加程序。 EventLog 正在按预期工作,但 CustomSmtpAppender 未发送任何电子邮件。 解决此问题的任何方向。

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


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

Ok. I have created custom SmtpAppender to use dynamic To email address.

Using sample project given with Log4net - I have managed to use dynamic email address as below

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

and in my custom 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();
        }

this code is working in sample application but when I am trying to use it in our "Project" not working for some reason.

I have 2 appenders in Log4net.config. EventLog is working as expected but CustomSmtpAppender is not sending any emails. Any direction to resolve this issue.

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


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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森林散布2025-01-10 00:20:51

我启用了 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>

I enabled log4net internal debugging and could see what was causing problem.

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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文