【问题标题】:Java intercept own process stdout and stderr streamsJava拦截自己的进程stdout和stderr流
【发布时间】:2016-09-04 12:10:24
【问题描述】:

在 Java 中,我想拦截我的进程的 stdoutstderr。我不想阻止它最终进入控制台/默认目标,但是在每个换行符处,我需要将该行复制到我自己的日志文件中(带有一些格式和 HTML 化)。我能看到的唯一方法是something like this - 这可能有效,但我担心不同的字符集,希望最终以与以前相同的方式格式化输出而不是抑制它,我需要处理它每个换行符,而不是在感觉像刷新时(即使使用 auto-flush = true)。

是否有某种库可以让这更容易?

【问题讨论】:

    标签: java logging stream stdout stderr


    【解决方案1】:

    但是在每个换行符处,我都需要将该行复制到我自己的日志文件中(带有一些格式和 HTML 化)。

    您为什么不考虑经典的 Unix 实用程序 tee?一个演示:

    1. tail -f source | tee tee.sink
    2. echo "foo" >> source -- 你应该会在终端上看到“foo”
    3. cat tee.sink 应该显示 foo

    还是我误解了你想要什么?

    【讨论】:

    • 我需要在 Java 进程中执行此操作。
    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2023-04-05
    • 1970-01-01
    • 2011-07-07
    相关资源
    最近更新 更多