如何使用Logback将System.out重定向到日志文件?

Mat*_*hew 11 java logging logback slf4j

如何使用Logback捕获Java程序中的System.out消息?

例如,我想使用此代码:

System.out.println("test: console out to file instead");
Run Code Online (Sandbox Code Playgroud)

...并将其输出捕获到文件中.

可以使用logback.xml配置文件完成吗?

Aug*_*sto 8

有一个小罐子为你做这个:http://projects.lidalia.org.uk/sysout-over-slf4j/index.html

请阅读FAQ:http://projects.lidalia.org.uk/sysout-over-slf4j/faq.html - 如果您使用此模块并配置logback输出到stdout,您将获得StackOverFlowError的流:d

如果你想自己做,你需要用自定义替换System.out和System.err PrintWriter(?我不能完全记住类名).此自定义PrintWriter需要以半智能方式将调用转发到logback,因为打印文本也可以逐个字符而不是按行打印.