我正在使用 IntelliJ 2019.3 终极版 IDE运行我的 Vaadin网络应用程序通过 Apache Tomcat web container .
当消息发送到 System.err
时比如:
System.err.println( "My message goes here." ) ;
...该消息落在何处?
在 IntelliJ 中显示的控制台上,我看到我发送到 System.out
的消息.但是发送到 System.err
的消息无法出现在同一个控制台上。
最佳答案
再次检查那个控制台
消息确实应该出现在 IntelliJ 的同一个控制台中。
您可能没有注意到有几个原因:颜色和顺序。
彩色
注意着色。鉴于 System.err
中的 err
表示“错误”,IntelliJ 将此类消息着色为红色墨水。
Vaadin 生成大量不同颜色的文本。您的眼睛可能会跳过那些彩色 block ,寻找其他颜色(例如在黑暗模式下黑色背景上的白色墨水)。
点击放大下面这段代码创建的截图:
System.out.println( "BASIL sout - " + message );
System.err.println( "BASIL System.err message" );
注意第 3 和 5 行。
- 红色的第 3 行 来自对
System.err
的调用。 - 白色的第 5 行 来自对
System.out
的调用。
(第 4 行来自对 Simple 日志框架的 SLF4 实现的调用,与此处无关。)
乱序外观
您可能由于另一个原因没有注意到您的消息:它们到达控制台的顺序可能与您在 Java 代码中调用的顺序不同。
再次查看上面的屏幕截图。第 3 行和第 5 行乱序出现:我们在 Java 中的第二次调用首先出现在控制台输出中(我不知道为什么)。
关于java - 在外部使用 Tomcat 从 IntelliJ 运行 Web 应用程序时,发送到 System.err 的消息去哪里了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59132401/