gpt4 book ai didi

java - 如何将 GC 重定向到 log4j2?

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:59 24 4
gpt4 key购买 nike

我已经设置了 log4j2 并使用 org.apache.logging.log4j.io.IoBuilder 将 stdout 和 stderr 重定向到我的日志,如下所示:

System.setOut(IoBuilder.forLogger(LogManager.getLogger("out")).setLevel(Level.INFO).buildPrintStream());
System.setErr(IoBuilder.forLogger(LogManager.getLogger("err")).setLevel(Level.ERROR).buildPrintStream());

如果代码中有类似System.out.println("this is a test");的内容我得到的预期输出:

15:15:43.817 [main] INFO  out - this is a test

给定我的日志配置。

但是,如果我将 GC 添加到程序中:-XX:+PrintGCDetails 我会期望类似的结果,但我得到了例如这个:

[GC (Allocation Failure) [PSYoungGen: 49152K->6129K(57344K)] 49152K->6137K(188416K), 0.1090832 secs] [Times: user=0.16 sys=0.00, real=0.11 secs]

我的问题是为什么 GC 没有通过我的记录器进行管道传送?它肯定必须发送到 stdout 或 stderr 吗?

最佳答案

GC 由程序下方的 VM 执行。

VM 使用自己的日志记录,完全独立于 Java 日志记录。

关于java - 如何将 GC 重定向到 log4j2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52099327/

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