Java 复制并重定向System.err流
我目前正在应用程序中使用java.util.logger。它将其输出发送到System.err。我需要它继续这样做,但我还需要将输出发送到其他地方Java 复制并重定向System.err流,java,logging,stream,redirectstandardoutput,Java,Logging,Stream,Redirectstandardoutput,我目前正在应用程序中使用java.util.logger。它将其输出发送到System.err。我需要它继续这样做,但我还需要将输出发送到其他地方 有没有办法复制System.err流,以便它可以发送到两个不同的源?当人们参考java.util.logger时,我觉得至少应该推荐查看另一个日志库,例如和 这描述了一种方法,它可以很容易地进行调整,以支持您的要求。简而言之,您需要做的是定义一个可以复制其输出的PrintStream,使用以下方法分配: System.setErr(doubleLog
有没有办法复制System.err流,以便它可以发送到两个不同的源?当人们参考
java.util.logger
时,我觉得至少应该推荐查看另一个日志库,例如和
这描述了一种方法,它可以很容易地进行调整,以支持您的要求。简而言之,您需要做的是定义一个可以复制其输出的PrintStream,使用以下方法分配:
System.setErr(doubleLoggingPrintStream)
和往常一样,当人们引用
java.util.logger
时,我觉得至少应该推荐查看另一个日志库,比如和
这描述了一种方法,它可以很容易地进行调整,以支持您的要求。简而言之,您需要做的是定义一个可以复制其输出的PrintStream,使用以下方法分配:
System.setErr(doubleLoggingPrintStream)
非常有趣。我以前已经注意到log4j被多次引用。你建议一个比另一个好吗?不,都是偏好。我们倾向于使用log4j,因为我们的大多数依赖项都已经基于它。如果您使用您的应用程序,则可以根据在类路径中可以找到的库在log4j/slf4j之间透明地切换。我以前已经注意到log4j被多次引用。你建议一个比另一个好吗?不,都是偏好。我们倾向于使用log4j,因为我们的大多数依赖项都已经基于它。如果您使用您的应用程序,则可以根据在类路径中可以找到的库在log4j/slf4j之间透明地切换。log4j的作者建议使用logback: