log4jを使用して例外を含むメールを送信しています。Log4j SmtpAppender - 件名の例外
私のlog4jの設定:
log4j.rootLogger=info, stdout, errmail
log4j.appender.errmail=cz.toby.utils.log.ErrSmtpAppender
[email protected]
log4j.appender.errmail.subject=Error -
log4j.appender.errmail.layout=org.apache.log4j.HTMLLayout
log4j.appender.errmail.threshold=debug
それは完璧に動作しますが、私が欲しいのはdynamicaly例外の名前を持つ主題の内容を変更しています。
私のアペンダは、次のようになります。
public class ErrSmtpAppender extends SMTPAppender {
@Override
public void activateOptions() {
setSMTPHost("xxxxx");
setFrom("[email protected]");
setBufferSize(50);
super.activateOptions();
try {
msg.setSubject(msg.getSubject() + ", node: " + InetAddress.getLocalHost().getHostName());
} catch (Exception e) {
// do nothing, only cannot set host to subject
}
}
}
は、どのように私はプログラム的に例外の名前を持つ対象を設定することができますか?私はインターネット上でそれを見つけようとしていましたが、似たようなテーマしか見つけられませんでしたが、私が欲しいものは見つけられませんでした。
ObjectRendererを行う必要があるかもしれませんですあなたはブロックをキャッチしますか?あなたはそれを飲み込むのではなく、そこに起こっていることを投稿できますか? setSubject()を使用してsetFrom()と同様のSMTPAppenderを構成しないのはなぜですか? –
このtry/catchブロックは重要ではありません。 "InetAddress.getLocalHost()。getHostName()"でホスト名を取得できない場合は、ホスト名なしのプロパティファイルからサブジェクトを設定するだけですアプリケーションのどこにいても私が捉えた例外の名前を取得し、それを対象に設定することです。私はこれが理解できることを願っています:) ...そしてmsg.setSubject()またはsetSubject()、そうです。 –
ああ、私はsetSubject()を使用することはできませんが、何らかの理由で動作しません。私はmsg.setSubject()を呼び出さなければならないが、私の以前の質問の要点ではない。 –