【问题标题】:Where the log stream goes?日志流去哪里了?
【发布时间】:2010-11-30 23:51:27
【问题描述】:

当一个应用程序启动时,不是从控制台而是从一个 UI 图标启动标准流的地方,我的意思是我可以看到这个日志吗?普通的旧 System.out 指向哪里作为“默认值”?

【问题讨论】:

  • 所有原木流都通向原木海。

标签: java operating-system


【解决方案1】:

正如 Angus 所说,没有控制台就无法获得输出。

将应用程序作为 GUI 启动后,您可以使用 System.setOutSystem.out 字段设置为登录到另一个目标(而不是 TTY 或控制台)。这样,您可以通过以下方式写入文件:

System.setOut(new PrintStream(path_to_a_file));

但是,不建议这样做。

您可以做的最好的事情是使用日志框架,例如 log4j 或 SLF4J,并以这种方式执行日志记录(到文件、网络主机或控制台)。

【讨论】:

  • +1:如果你不控制它,你不知道它在哪里结束。在我们的生产环境中 System.out 被缓冲。因此,我们不能确定是否能够看到打印的最新内容(还),这在尝试查看发生的情况时相当乏味。那时我们决定修复日志记录配置,以便将所有内容发送到文件中。
【解决方案2】:

如果应用没有控制台,那么通常标准输出不会去任何地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多