gpt4 book ai didi

java - Log4j SmtpAppender - 主题异常

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:43 24 4
gpt4 key购买 nike

我使用 log4j 发送异常电子邮件。

我的 log4j 配置:

log4j.rootLogger=info, stdout, errmail

log4j.appender.errmail=cz.toby.utils.log.ErrSmtpAppender
log4j.appender.errmail.to=my_email@email.cz
log4j.appender.errmail.subject=Error -
log4j.appender.errmail.layout=org.apache.log4j.HTMLLayout
log4j.appender.errmail.threshold=debug

它工作得很好,但我想要的是用异常名称动态更改主题的内容。

我的 appender 看起来像这样:

    public class ErrSmtpAppender extends SMTPAppender {

@Override
public void activateOptions() {
setSMTPHost("xxxxx");
setFrom("from_email@email.cz");
setBufferSize(50);
super.activateOptions();
try {
msg.setSubject(msg.getSubject() + ", node: " + InetAddress.getLocalHost().getHostName());
} catch (Exception e) {
// do nothing, only cannot set host to subject
}
}

}

如何以编程方式设置具有异常名称的主题?我试图在互联网上找到它,但我只找到了类似的主题,但没有找到我真正想要的。

最佳答案

@Toby 好吧,我误解了你想要达到的目标。您需要电子邮件主题中的日志消息吗?

我认为为此您需要访问 Appender 的 CyclicBuffer cb,例如:

msg.setSubject("Logged Message String" + cb.get(cb.length()).getMessage());

或者您可能还需要做一个 ObjectRenderer

ThreadGroupRenderer stackTraceRenderer = new ThreadGroupRenderer();
msg.setSubject("First 100 Chars of Stack Trace: " + stackTraceRenderer(cb.get(cb.length()-1).getMessage()).substring(0,99));

关于java - Log4j SmtpAppender - 主题异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com