我试图使用System.out.println来帮助调试,我发现它没有打印到控制台。在检查时,我发现我的程序创建了4个输出控制台(一个用于Java DB进程,一个用于DB服务器,一个用于调试程序,一个用于程序输出)。我在一个意外的控制台 - 数据库服务器输出中找到了我期望的println。 我想了解这些输出。我希望System类有一个活动输出控制台(printstreams)的列表字段,如:
ArrayList<PrintStream> getActivePrintOutputs()
但我没有看到一个。我如何得到它们?
答案 0 :(得分:1)
通常,您只有一个活动的System.out
输出流,因此系统没有理由维护列表。
如果要跟踪创建的所有PrintStream,可以使用检测来跟踪它们的创建,或者在类的构造函数中放置一个断点并调试程序。
注意:程序为不同目的创建多个日志文件是正常的,这些可能是您正在考虑的PrintStream。
答案 1 :(得分:1)
System
没有超出out
和err
指定的多个输出流的概念,您只需引用System.out
和System.err
即可访问这些输出流。分别
如果使用其他控制台或输出流,则必须由代码中的其他点(或您正在使用的库代码中的其他点)创建。