首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在写入Java标准输出的所有消息中添加前缀

在写入Java标准输出的所有消息中添加前缀
EN

Stack Overflow用户
提问于 2020-03-05 21:05:11
回答 1查看 164关注 0票数 0

如何使写入标准输出的所有内容都有日期/时间前缀?

更多背景。我的应用程序通过log4j2将日志文件写入日志文件,但我们还有另一个日志文件,称为CatchAll.log,对于所有非记录器输出来说,这是一种“全部捕获”。这个文件通常包含Java垃圾收集器输出、对System.out.println()的调用以及其他内容。CatchAll.log没有一个很好的前缀,比如“2035年5月7日16:03:22”,所以我经常在里面找到错误消息,无法确定它们何时发生。

编辑

另外,CatchAll.log是由流程管理器生成的。我无法控制流程管理器的代码,也无法迁移。

我假设这个文件得到所有的标准输出,但我不确定。

EN

回答 1

Stack Overflow用户

发布于 2020-03-06 00:03:32

听起来,您已经编写了将System.out重定向到文件的东西。如果是这样的话,您应该能够任意操作数据流。例如,您可以检查数据流,每当您看到新行时,您可以设置一个新的行标志,当收到更多内容时,在写入新数据之前先写出前缀。

作为一个稍微复杂一些的替代方法,您可以将数据传递给Log4j2 Logger方法之一,而不是自己格式化。在这种情况下,可以使用PatternLayout来格式化消息。您还需要确保在log4j2.xml中不要使用ConsoleAppender写入System.out,否则最终会陷入无穷无尽的循环。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60553922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档