1
後に電子メールを送信します(それはSmtpExtendedAppender
の目的だが、保存されたすべてのメッセージを反復処理)私はそれらにアクセスする方法がわかりません。log4netの - のSMTPアペンダは、私だけが唯一のHTMLテーブルとして書かれていた</strong><strong>100エラー後に電子メールを送信したいと思います100のエラー
これは私のapp.configです:
<appender name="SmtpAppender" type="log4net.Appender.SmtpExtendedAppender">
<authentication value="Basic" />
<password value="xxxxxx"/>
<username value="xxxxxxxx"/>
<from value="[email protected]" />
<to value="[email protected]" />
<smtpHost value="smtp.gmail.com" />
<isBodyHtml value="true" />
<bufferSize value="100" />
<EnableSsl value="true"/>
<subject value="test logging message" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%logger]%newlineUsername: %property{username}%newline%level - %message%newline%exception" />
</layout>
</appender>
は、これは私のコンソールアプリケーションです:
static void Main(string[] args)
{
Console.WriteLine("hello world");
log.Error("This is my first error message");
log.Error("This is my second error message");
Console.ReadLine();
}
私は完全に私はそれを価値を与えたにもかかわらず、log4netのバッファサイズがどのように動作するかを理解していないです100の場合は、コンソールアプリケーションを実行するたびに2つの電子メールを送信します。
このアプリケーションを50回実行して100エラーになる場合は、それらを蓄積して1回の電子メールで送信できますか?
私はそうは思わない - アプリケーションが終了すると、アペンダーが終了し、バッファーがフラッシュされ、電子メールが送信されます。しきい値に達するまで、ログイベントを保存するために、ある種のバッキングストレージを持つようにアペンダーを拡張する必要があります。 – stuartd
@stuartdあなたは 'cache'や' session'にメッセージを格納するような意味ですか? –
メッセージを失う準備ができていない限り、永続ストレージを使用することをお勧めします。 – stuartd