gpt4 book ai didi

java - 将进程的输出写入 log4j

转载 作者:行者123 更新时间:2023-11-30 10:48:51 25 4
gpt4 key购买 nike

我使用 ProcessBuilder 启动一个进程,并希望将输出写入 log4j。我怎样才能做到这一点?

我知道我可以将进程的输出重定向到一个文件,然后读回该文件,但我希望有一些更简单的方法。

如果有更简单的解决方案,我想避免编写自己的 OutputStream 实现。我希望我不是第一个想要将 ProcessBuilder 的输出作为像

 List<String> 

或者其他容易处理的东西。

最佳答案

您可以使用 Process.getInputStream() 和/或 Process.getErrorStream() 检索输出并将其写入 log4j。例如:

private static final Logger LOG = Logger.getLogger(MyClass.class);
....
ProcessBuilder pBuilder = new ProcessBuilder("MyProcess").redirectErrorStream(true);
Process process = pBuilder.start();
LOG.info(new String(IOUtils.toByteArray(process.getInputStream())));

如果是长时间运行,偶尔提供输出的进程,那么最好把最后一行放在单独的线程中。

关于java - 将进程的输出写入 log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35628423/

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