暂时禁用System.out

时间:2013-11-29 20:28:31

标签: java constructor io

我正在尝试实施暂时禁用恶意库输出的This solution。然而我的问题是我得到了这个:

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

使用此代码

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

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

1 个答案:

答案 0 :(得分: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);
        }
    });
}

并简单地在静态块上调用该方法。