在大型Java程序中查找错误输出到System.out

Svr*_*Guy 3 java debugging console

我们有一个很大的java代码库[~1 M行].

在代码库中埋藏(某处)是我们要删除的一些旧的System.out调试输出(它的混乱).

问题是:out代码库太大,我们无法轻易找到输出的来源.我们想要的是一种方法来查看调用System.out.println的位置(如异常或其他类似的堆栈跟踪).

它不适合调试 - 错误的输出来自某个错误的线程等.

有关如何跟踪此错误输出源的任何想法?

PS:对System.out的99.99%的调用是合法的,我们有成千上万的调用,所以只需在代码库中搜索System.out调用就不是解决办法!

dou*_*lep 7

有一种System.setOut()方法.如果你真的很绝望,可以将它设置为真正的stdout的一些包装,并在你的包装器中做任何事情.例如,将写入的字符串与某些内容进行比较,如果这是错误的输出则抛出.