gpt4 book ai didi

java - 有没有办法将进程的标准输出发送到 SLF4J?

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:43 25 4
gpt4 key购买 nike

我基本上是在做以下事情:

Process process = new ProcessBuilder().command( ... ).start();
InputStream stdout = process.getInputStream();
LoggerFactory.getLogger( this.class ).debug...?

有没有办法将 InputStream 写入记录器,以便它由我的记录设置管理?或者我应该采取另一种方法来捕获流程输出吗?

更新:我重写了这个,因为我刚刚意识到我读错了 Process/ProcessBuilder API,而 getInputStream() 是标准输出

更新 2 理想情况下,实现此目的的方式将允许我在 stdout/stderr 出现时(一次一行)处理它们,而不是稍后处理。

最佳答案

如果您愿意使用图书馆,zt-exec非常方便,可以将进程的stdout和stderr重定向到SLF4J。

例如,将 stdout 重定向到调用类的记录器的信息级别,将 stderr 重定向到错误级别:

new ProcessExecutor().command("java", "-version")
.redirectOutput(Slf4jStream.ofCaller().asInfo())
.redirectError(Slf4jStream.ofCaller().asError())
.execute();

关于java - 有没有办法将进程的标准输出发送到 SLF4J?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416711/

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