【发布时间】:2018-08-21 20:54:39
【问题描述】:
我在 Java 中使用专有 API。它的connect 方法在我的标准输出上释放了大量的日志消息。这使我无法从自己的记录器中读取消息。不幸的是,API 的setOut 方法不起作用。
有没有办法阻止connect 方法写入标准输出?
【问题讨论】:
-
也许我不明白这个问题,但您可以在调用连接方法之前将“System.out”设置为一个虚拟输出文件。
-
如果它使用
System.out,那么System.setOut应该可以工作。如果它使用其他方式(例如 JNI 和写入标准输出),那就很复杂了。在 C 中,你会做这样的事情:oldout = dup(stdout); close(stdout); open("/dev/null"); ...; close(stdout); dup(oldout); close(oldout); -
找出 API 正在使用的记录器并降低其日志级别。向供应商投诉。