在我们的产品中,我们使用了许多外部库。我们使用log4j进行日志记录,大多数库也这样做,因此我们可以很好地在附加程序中获取大多数消息。
但是有几个库仅使用System.out和System.err。因此,我正在寻找一种将System.out和System.err重定向到仅用于特定jar的log4j追加程序的方法,使用log4j的其他库不应受到影响,并且有时也会打印到System.out和System.err ,并且这些消息仍应存在。
这可能吗?
最佳答案
假设-从未尝试过
创建自定义日志级别。级别应为以下级别。ALL
将std打印流重写为您自己的流。使用您的自定义级别执行控制台和日志输出
为所需的程序包创建新类别,并将其日志记录级别设置为自定义日志记录级别
有用的示例代码
http://blogs.oracle.com/nickstephen/entry/java_redirecting_system_out_and
和
log4j redirect stdout to DailyRollingFileAppender