Log4net Smtpアペンダーを使用して電子メールの本文をカスタマイズするにはどうすればよいですか?本文にカスタムメッセージを追加したかった。
4171 次
5 に答える
5
これに似たアペンダーを使用している場合
<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を検索するその他の構成サンプルはこちら
于 2011-12-14T15:59:56.167 に答える
5
独自のアペンダーを作成して、SmtpAppenderから継承できます。そこで、SendEmailなどのメソッドをオーバーライドできます。
class MySmtpAppender : SmtpAppender
{
protected override void SendEmail(string messageBody)
{
string newmessageBody = messageBody + "...";
base.SendEmail(newmessageBody);
}
}
<appender name="MySmtpAppender" type="YourLib.MySmtpAppender">
このクラスにいくつかのプロパティを追加することもでき、それらを構成ファイルで使用できるようになります。
于 2011-12-14T16:06:33.287 に答える
3
SMTPアペンダーを使用する場合、メッセージ本文にはログイベントが含まれます。ログイベントは、アペンダーを構成するときに指定したレイアウトでフォーマットされます。
最もよく使用されるのは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>
于 2011-12-14T16:02:37.820 に答える
2
たとえば、ヘッダーやフッターを追加することで、レイアウトレベルでカスタマイズできます。
<layout type="log4net.Layout.PatternLayout">
<header value="[Header] " />
<footer value="[Footer] " />
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
于 2011-12-14T16:02:35.683 に答える
1
ボディは、変換パターンを使用して制御されます(他のアペンダーと同様)。
<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>
于 2011-12-14T16:00:50.930 に答える