获取活动system.out打印流的列表

时间:2018-06-06 12:32:51

标签: java system.out printstream

我试图使用System.out.println来帮助调试,我发现它没有打印到控制台。在检查时,我发现我的程序创建了4个输出控制台(一个用于Java DB进程,一个用于DB服务器,一个用于调试程序,一个用于程序输出)。我在一个意外的控制台 - 数据库服务器输出中找到了我期望的println。 我想了解这些输出。我希望System类有一个活动输出控制台(printstreams)的列表字段,如:

 ArrayList<PrintStream> getActivePrintOutputs() 

但我没有看到一个。我如何得到它们?

2 个答案:

答案 0 :(得分:1)

通常,您只有一个活动的System.out输出流,因此系统没有理由维护列表。

如果要跟踪创建的所有PrintStream,可以使用检测来跟踪它们的创建,或者在类的构造函数中放置一个断点并调试程序。

注意:程序为不同目的创建多个日志文件是正常的,这些可能是您正在考虑的PrintStream。

答案 1 :(得分:1)

System没有超出outerr指定的多个输出流的概念,您只需引用System.outSystem.err即可访问这些输出流。分别

如果使用其他控制台或输出流,则必须由代码中的其他点(或您正在使用的库代码中的其他点)创建。