gpt4 book ai didi

JavaMail setDebug(真)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:43 33 4
gpt4 key购买 nike

如何在 JavaMail session 中setDebug(true) 捕获流并在我的日志记录框架中使用它? (缺少下载源代码,更改接受流作为参数的方法,重新编译它,...)

更一般地说,Java 中是否有一种标准方法以这种方式“劫持和重定向”通用流输出?请注意,System.out 可能已经被其他输出污染,我不知道如何“过滤”...

最佳答案

您可以将 PrintStream 链接到 ByteArrayOutputStream,告诉 JavaMail 使用您的 PrintStream,执行 JavaMail 操作,最后,将 ByteArrayOutputStream 的内容转储到您喜欢的记录器。

        ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
Session mailSession = Session.getDefaultInstance(props, null);
try {
if (MAIL_DEBUG) {
logger.info("JAVAMAIL debug mode is ON");
mailSession.setDebugOut(ps);
mailSession.setDebug(true);
}
...
transport.close();
if (MAIL_DEBUG) {
logger.info(os);
}
}
finally {
ps.close();
os.close();
}

关于JavaMail setDebug(真),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556320/

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