Я настроил 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 («это тест»); Я получаю ожидаемый результат:
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 не попадает в мою систему регистрации? Конечно, его нужно отправить на стандартный вывод или стандартный вывод?