1

我正在使用IntelliJ 2019.3 Ultimate edition IDE通过Apache Tomcat Web 容器运行我的Vaadin Web 应用程序。

当消息发送到System.err以下位置时:

System.err.println( "My message goes here." ) ;

......该消息在哪里登陆?

在 IntelliJ 中显示的控制台上,我看到了我发送到的消息System.out。但是发送的消息System.err无法出现在同一个控制台上。

4

1 回答 1

0

再次检查该控制台

消息确实应该出现在 IntelliJ 中的同一控制台中。

您可能没有注意到有几个原因:颜色和顺序。

彩色

小心着色。鉴于errinSystem.err表示“错误”,IntelliJ 将此类消息着色为红色墨水。

Vaadin 生成大量各种颜色的文本。您的眼睛可能会跳过那些彩色块,寻找其他颜色(例如在黑暗模式下黑色背景上的白色墨水)。

单击以放大此代码创建的以下屏幕截图:

System.out.println( "BASIL sout - " + message );
System.err.println( "BASIL System.err message" );

注意第 3 行和第 5 行。

  • 红色的第 3 行是从 call 到System.err
  • 白色的第 5 行是从 call 到System.out

(第 4 行来自对SLF4日志框架的简单实现的调用,此处无关。)

暗模式下 IntelliJ 中的控制台屏幕截图,将 System.err 消息显示为红色文本,而 System.out 消息使用白色文本。

乱序外观

您可能没有注意到您的消息还有一个原因:它们到达控制台的顺序可能与您在 Java 代码中调用的顺序不同。

在上面的屏幕截图中再次查看。第 3 行和第 5 行出现乱序:我们在 Java 中的第二次调用首先出现在控制台输出中(我不知道为什么)。

于 2019-12-02T04:04:51.780 回答