Redirect System.out.println
2022-09-01 09:16:25
我的应用程序有许多 System.out.println() 语句。
我想从println捕获消息并将其发送到标准记录器(Log4j,JUL等)。
如何做到这一点?
我的应用程序有许多 System.out.println() 语句。
我想从println捕获消息并将其发送到标准记录器(Log4j,JUL等)。
如何做到这一点?
我曾经有过类似的需求。我需要拦截一些第三方组件的输出,并对错误消息做出反应。这个概念看起来像这样:
private class Interceptor extends PrintStream
{
public Interceptor(OutputStream out)
{
super(out, true);
}
@Override
public void print(String s)
{//do what ever you like
super.print(s);
}
}
public static void main(String[] args)
{
PrintStream origOut = System.out;
PrintStream interceptor = new Interceptor(origOut);
System.setOut(interceptor);// just add the interceptor
}