[英]Customizing the body of the email using Log4net Smtp appender
如何使用Log4net Smtp appender自定義電子郵件正文? 我想向身體添加自定義消息。
鑒於你使用類似的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>
在記錄之前,您應該能夠使用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);
這里有更多配置示例搜索SmtpAppender
您可以創建自己的appender並從SmtpAppender繼承它。 在那里你可以覆蓋SendEmail等方法。
class MySmtpAppender : SmtpAppender
{
protected override void SendEmail(string messageBody)
{
string newmessageBody = messageBody + "...";
base.SendEmail(newmessageBody);
}
}
<appender name="MySmtpAppender" type="YourLib.MySmtpAppender">
您還可以向此類添加一些額外的屬性,您將能夠在配置文件中使用它們。
當您使用SMTP Appender時,郵件正文包含日志事件,該事件由您在配置appender時指定的布局進行格式化。
最常用的是PatternLayout,因此無論你放入這個布局的conventionPattern屬性,都將進入電子郵件消息體。
所以你應該做這樣的事情:
<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="Hello, we got an error in the app. here are the details: %newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>
您可以在布局級別進行自定義,例如通過添加頁眉和/或頁腳:
<layout type="log4net.Layout.PatternLayout">
<header value="[Header] " />
<footer value="[Footer] " />
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
使用轉換模式(與任何其他appender一樣)控制正文。
<appender name="EmailAppender" type="log4net.Appender.SmtpAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n%n%d{yyyy-MM-dd HH:mm:ss} %5p %10u %m" />
</layout>
</appender>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.