【问题标题】:get list of active system.out printstreams获取活动 system.out 打印流列表
【发布时间】:2018-06-06 12:32:50
【问题描述】:

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

 ArrayList<PrintStream> getActivePrintOutputs() 

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

【问题讨论】:

    标签: java system.out printstream


    【解决方案1】:

    System 没有超出outerr 指定的多个输出流的概念,您可以通过分别引用System.outSystem.err 来访问它们。

    如果使用了其他控制台或输出流,它们一定是由您代码中的其他点(或您正在使用的库代码中的其他点)创建的。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-03
        • 2016-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多