【问题标题】:Copy and Redirecting System.err Stream复制和重定向 System.err 流
【发布时间】:2011-02-02 22:01:30
【问题描述】:

我目前在我的应用程序中使用 java.util.logger。它将其输出发送到 System.err。我需要它继续执行此操作,但我还需要将该输出发送到其他东西。

有没有办法复制 System.err 流,以便它可以发送到两个不同的源?

【问题讨论】:

    标签: java logging stream redirectstandardoutput


    【解决方案1】:

    当注意到人们引用java.util.logger 时,我倾向于至少建议查看另一个日志库,例如logbackslf4j

    这个blog post 描述了一种可以轻松调整以支持您所要求的方法。简而言之,您需要做的是定义一个可以复制其输出的 PrintStream,使用:

    System.setErr(doubleLoggingPrintStream)
    

    【讨论】:

    • 非常有趣。我注意到之前多次引用 log4j。您是否建议其中之一?
    • 不,这都是偏好。我们倾向于使用 log4j,因为我们的大多数依赖项已经基于它。如果您使用commons-logging,您的应用程序可以根据类路径中可以找到的库透明地在 log4j/slf4j 之间切换。
    • log4j作者推荐logback:logback.qos.ch/reasonsToSwitch.html
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多