在我们的产品中,我们使用了许多外部库。我们使用log4j进行日志记录,大多数库也这样做,所以我们在appender中得到的大部分消息都很好。
但是有几个库只使用System.out和System.err。所以我正在寻找一种方法将System.out和System.err重定向到我们的log4j appenders 仅针对特定的jar ,其他使用log4j的库不应该受到影响,有时也打印到System.out和System.err,这些消息仍然应该去那里。
这有可能吗?
答案 0 :(得分:1)
假设 - 从未尝试过
有用的示例代码
http://blogs.oracle.com/nickstephen/entry/java_redirecting_system_out_and
和
答案 1 :(得分:1)
不确定是否可以将输出流提供给log4j appender,但如果您只想将其发送到日志文件,则可以将system.out指向如下文件:
File file = new File("my.log");
PrintStream printStream = new PrintStream(new FilleOutputStream(file));
System.setOut(printStream);
您可以对System.err
执行相同的操作我喜欢Faheem的第一个链接,它有滚动文件的解决方案。