【问题标题】:How to redirect System.out to Play Logger? [duplicate]如何将 System.out 重定向到 Play Logger? [复制]
【发布时间】:2019-04-17 01:05:30
【问题描述】:

所以我在我的项目中使用了一个库,它使用 System.out 进行日志记录,我希望我的所有日​​志记录都在播放记录器中标准化 (play.Logger)。所以,我想知道是否有办法在debug 级别将 System.out 重定向到 Play Logger? 也许通过更改 System.out 以使用不同的流?

注意事项:

我的 Play 记录器配置为使用以下附加程序:

ch.qos.logback.core.ConsoleAppender
ch.qos.logback.core.FileAppender

我认为图书馆只调用System.out.println(String)

【问题讨论】:

    标签: java scala logging playframework logback


    【解决方案1】:

    使用以下sn-p:

        System.setOut(new PrintStream(new OutputStream() {
            StringBuilder sb = new StringBuilder();
    
            @Override
            public void write(int b) throws IOException {
                if (b == '\n') {
                    writeStringToActualLogger(sb.toString());
                    sb = new StringBuilder();
                } else {
                    sb.append((char) b);
                }
            }
        }));
    

    请记住,它仅适用于 ASCII。

    您必须实现writeStringToActualLogger 才能将字符串写入您的记录器。

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 2014-12-03
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多