2

Logback で SMTPAppender を使用して、自動化されたジョブが正常に完了したときとエラーが発生したときにメッセージを送信しています。エラーを通知するメールは重要度を高くして送信してほしい。Logback/SMPTAppender でこれを行うにはどうすればよいですか? 箱から出してすぐに実行できない場合、この問題を共有するための自家製の解決策を誰かが持っていますか?

4

2 に答える 2

3

私はアペンダーの拡張を見て、これで終わりました。これは仕事をしているようです。

import javax.mail.MessagingException;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.net.SMTPAppender;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.helpers.CyclicBuffer;

public class PrioritySMPTAppender extends SMTPAppender {

    @Override
    protected void sendBuffer(CyclicBuffer<ILoggingEvent> cyclicBuffer, ILoggingEvent lastEventObject) {
        try {
            // 1,2 = high, 3 = normal, 4-5 = low, apparently. Most readers won't make
            // a difference between 1 and 2, or 4 and 5, allegedly.
            if(lastEventObject.getLevel().isGreaterOrEqual(Level.WARN)) {
                mimeMsg.setHeader("X-Priority", "1");
            } else {
                mimeMsg.setHeader("X-Priority", "3");
            }
        } catch(MessagingException e) {}
        super.sendBuffer(cyclicBuffer, lastEventObject);
    }   
}

これは内部使用のみであり、例外を適切に処理したり、ログ レベルと優先度のプロパティを追加したりすることはあまり気にしませんが、他の人はそうしたいと思うかもしれません。

于 2013-06-13T10:43:16.187 に答える