忽略子线程生成的日志

时间:2012-03-31 12:27:29

标签: java multithreading logging

我正在开发的应用程序运行一些独立的库代码,它通过PrintWriter将大量日志输出到stdout。此外,库处理的任务在单独的线程中运行。我想知道是否可以忽略(防止日志出现在控制台上)这些日志。但是,我不能直接修改库代码,所以简单的解决方案是不可能的。

干杯!

1 个答案:

答案 0 :(得分:1)

是哪个lilbrary?或者确切地说:是否使用了一些日志框架?如果它只是使用System.out将内容打印到控制台,那么它基本上是写得不好的库(tm)。在这种情况下,您可以做的一切就是使用System.out重定向到System Out and Err redirected to SLF4J。基本上它使用System.setErr()System.setOut()覆盖默认控制台。

如果您的库使用任何日志框架(可能是java.util.logging),请尝试找出它使用的记录器/类别,并在日志记录框架中对其进行过滤。

请注意,我没有提及有关线程的任何信息。根据当前线程过滤日志/控制台输出有点棘手,请在您选择的日志框架中使用记录器层次结构。