java - 如何将 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
我想将所有这些日志复制到一个字符串中。我尝试了许多解决方案,但没有一个有效。
解决方案
您可以将System.setOut()与StringWriter一起使用。
例如:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
System.setOut(new PrintStream(stream));
String output = stream.toString();
推荐阅读
- java - 如何在java中将后端连接到前端?
- python - 在将每个元素与其邻居进行比较时,如何通过枚举避免索引超出范围错误?
- php - WordPress - 修复自定义字段图像添加到特色图像的延迟
- c# - 如何移动其他应用程序但又不将它们重叠在一起
- java - Java - 将 JSON 对象中的键提取到值为 true 的字符串中
- php - PHPUnit 处理测试中没有消息的异常
- css - 以多种尺寸显示相同的组件
- wordpress - 为 wordpress 图库功能添加选项
- php - laravel和flutter之间的加密
- perl - 在 shell 脚本中使用 SSH 命令时出错