gpt4 book ai didi

java - 为写入 Java 标准输出的所有消息添加前缀

转载 作者:行者123 更新时间:2023-12-02 08:54:45 24 4
gpt4 key购买 nike

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

更多背景。我的应用程序通过 log4j2 写入日志文件,但我们还有另一个日志文件,称为 CatchAll.log,它是所有非记录器输出的“全部捕获”。该文件通常包含 Java 垃圾收集器输出、对 System.out.println() 的调用以及其他内容。不过,CatchAll.log 没有像“[May 7, 2035 16:03:22]”这样的漂亮前缀,因此我经常在其中找到错误消息,但无法确定它们何时发生。

[编辑]

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

我假设该文件获取所有标准输出,但我不确定。

最佳答案

听起来您已经编写了将 System.out 重定向到文件的内容。如果是这样,您应该能够按照您想要的方式操纵数据流。例如,您可以检查数据流,每当看到新行时,您可以设置新行标志,并且当收到更多内容时,在写入新数据之前写出您的前缀。

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

关于java - 为写入 Java 标准输出的所有消息添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60553922/

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