Java 同步System.out&;System.err
在调试代码时,我经常使用System.out和System.err。问题是当出现异常时,我使用System.out,但结果看起来不是很有条理Java 同步System.out&;System.err,java,debugging,system.out,system.err,Java,Debugging,System.out,System.err,在调试代码时,我经常使用System.out和System.err。问题是当出现异常时,我使用System.out,但结果看起来不是很有条理 [CLIENT]:postinit: vic.rpg.gui.GuiMain.init() java.net.ConnectException: Connection refused: connect [CLIENT]:Destroying Network Thread... [CLIENT]:done! at java.net.DualStack
[CLIENT]:postinit: vic.rpg.gui.GuiMain.init()
java.net.ConnectException: Connection refused: connect
[CLIENT]:Destroying Network Thread...
[CLIENT]:done!
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
...
[CLIENT]:Starting Server...
这不是很严重,但有时会使读取日志变得有点困难。您可以通过在每次写入任一流时调用
flush
来避免此问题。e、 g:
System.out.println ("Writing to *out*");
System.out.flush ();
如果您是从不同的线程进行日志记录,那么日志记录消息将自然交错。如果您想通过线程清晰地分离输出,我建议使用一个日志库,例如。如果您使用正确的日志框架,您就不会有这种问题。我已经将System.out包装到我自己的PrintStream中,为每个方法添加一个
super.flush()
。