调试代码时,我倾向于使用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.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...
它不是很严重,但它有时会让阅读日志变得有点困难。
答案 0 :(得分:1)
每次写入任一流时,都可以通过调用flush
来避免此问题。 e.g:
System.out.println ("Writing to *out*");
System.out.flush ();
如果从不同的线程进行日志记录,则日志消息将自然交错。如果您想通过线程干净地分隔输出,我建议使用log4j等日志库。