2

在调试代码时,我经常使用 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...

它不是很严重,但有时会使阅读日志有点困难。

4

1 回答 1

1

flush您可以通过在每次写入任一流时调用来避免此问题。例如:

System.out.println ("Writing to *out*");
System.out.flush ();

如果您从不同的线程进行日志记录,那么您的日志消息自然会交错。如果您想按线程干净地分离输出,我建议使用日志库,例如log4j

于 2014-02-10T10:49:27.123 回答