log4jを使用して、バックグラウンドプロセスからのロギングステートメントを含むemailableレポートを送信しようとしています。私は各プロセスの実行ごとに1つの電子メールを送信し、各ロギングステートメントの電子メールは1つではありません。私はSMTPAppender
を見ましたが、プロセスが完了したときにレポートを手動で送信する方法はありません。私はTriggeringEventEvaluator
が鍵かもしれないと信じていますが、私が実行している問題の1つは、TriggeringEventEvaluator
インスタンスへのハンドルを取得する方法です。私はlog4j 1.2.14を使用して立ち往生しており、SMTPAppender.getEvaluator()
メソッドが1.2.15で導入されました。何かご意見は?私は正しい軌道にいるのだろうか? SMTPAppender.close()
メソッドはここで再生されますか?log4jを使用してSMTPAppender経由で電子メールレポートを送信
は、私がこれを行うことができるようにしたい:
log.info(message1);
log.info(message2);
log.info(message3);
log.sendMail();
もう少しこのことについて考えた後、私は私が達成するために望んでいるものを明確にする必要があると思います。私は、石英の仕事を実行することからログをキャプチャしようとしており、結果のログを電子メールとして送信しようとしています。石英の仕事は、さまざまなサービスにサービスメソッド呼び出しの束を作ります。私は、これらのサービスメソッドが実行するすべてのロギングと、クォーツジョブ自体のロギングを含める必要があります。私はすべてのロギングをキャプチャするために以下のようなことをすることができると考えていましたが、うまくいきません。
// at the beginning of quartz job
Logger logger = Logger.getRootLogger();
StringWriter sw = new StringWriter();
WriterAppender wa = new WriterAppender(new SimpleLayout(), sw);
logger.addAppender(wa);
// at the end of the quartz job
String report = sw.toString();
おそらく[このポスト](http://stackoverflow.com/a/42435452/1902296)は上記のlog4jプロパティに役立つ – gumkins