暂时禁用System.out

3

我正在尝试实现这个解决方案,以临时禁用一个不良库的输出。但我的问题是我遇到了这个:

The constructor PrintStream(new OutputStream(){}) is undefined 

使用此代码

 PrintStream out = System.out;
            System.setOut(new PrintStream(new OutputStream() {
                 public void write(int b) throws IOException {}
            }));

这个类怎么没有构造函数呢?谢谢。

3
在我的系统上编译没有问题。尝试在 public void write() 上面添加 @Override - musical_coder
那个成功了,谢谢。 - MangO_O
1个回答

0

我实际上将所有的system.out和system都转发到底层的日志记录器。

private static void redirectStdOutErrToSl4j() {
    System.setOut(new PrintStream(System.out) {
        @Override
        public void print(final String s) {
            logger.info(s);
        }
    });
    System.setErr(new PrintStream(System.err) {
        @Override
        public void print(final String s) {
            logger.error(s);
        }
    });
}

只需在静态块上调用该方法即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接