首页 > 解决方案 > 如何将 Log4J 输出复制到字符串?

问题描述

我正在使用 IntelliJ 和 Java。我想将正在运行的程序的输出复制到一个字符串。此解决方案必须在 IntelliJ 本地和 Jenkins 作业中都有效。

例如,我正在运行的控制台输出如下所示:

log4j:ERROR Could not find value for key log4j.appender.stdot

log4j:ERROR Could not instantiate appender named "stdot". log4j:ERROR

Could not find value for key log4j.appender.stdout log4j:ERROR Could
not instantiate appender named "stdout". [1;34m2019-05-12 08:17:38
Property file env/application.properties parsed successfully[0m

我想将所有这些日志复制到一个字符串中。我尝试了许多解决方案,但没有一个有效。

标签: javalogginglog4j

解决方案


您可以将System.setOut()StringWriter一起使用。

例如:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
System.setOut(new PrintStream(stream));
String output = stream.toString();

推荐阅读