繁体   English   中英

在外部使用 Tomcat 从 IntelliJ 运行 Web 应用程序时,发送到 System.err 的消息会去哪里?

[英]Where do messages sent to System.err go when using Tomcat externally to run a web app from IntelliJ?

我正在使用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消息无法出现在同一个控制台上。

再次检查那个控制台

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

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

彩色的

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

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

点击放大下面这段代码创建的截图:

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

注意第 3 行和第 5 行。

  • 红色的第 3 行来自对System.err调用。
  • 白色的第 5 行来自对System.out调用。

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

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

外观乱码

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM