使用Log4net Smtp appender自定义电子邮件正文

Coo*_*Tek 2 c# log4net-configuration smtpappender

如何使用Log4net Smtp appender自定义电子邮件正文?我想向身体添加自定义消息.

ole*_*sii 5

鉴于你使用类似的appender

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
    <to value="to@domain.com" />
    <from value="from@domain.com" />
    <subject value="test logging message" />
    <smtpHost value="SMTPServer.domain.com" />
    <bufferSize value="512" />
    <lossy value="false" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message" />
    </layout>
</appender>
Run Code Online (Sandbox Code Playgroud)

在记录之前,您应该能够使用StringBuilder格式化消息:

var sb = new StringBuilder();
sb.Append("Header");
sb.Append(Environment.NewLine);
sb.Append("Message");
...
var msg = sb.ToString();

ILog log = //resolve ILog
log.Debug(msg);
Run Code Online (Sandbox Code Playgroud)

这里有更多配置示例搜索SmtpAppender


Eug*_*ene 5

您可以创建自己的附加程序,并从SmtpAppender继承它。在那里,您可以覆盖诸如SendEmail之类的方法。

class MySmtpAppender : SmtpAppender
{
    protected override void SendEmail(string messageBody)
    {
        string newmessageBody = messageBody + "...";
        base.SendEmail(newmessageBody);
    }
}

<appender name="MySmtpAppender" type="YourLib.MySmtpAppender">
Run Code Online (Sandbox Code Playgroud)

您还可以向此类添加一些额外的属性,并且可以在配置文件中使用它们。