在服务器上打印System.out.println

时间:2014-10-19 11:42:01

标签: java eclipse logging jboss

使用eclipse:

当我们通常在java文件中输出任何内容时,它会在eclipse控制台上打印,但是当我们的应用程序部署在Jboss上时,sysout会在服务器控制台和服务器日志中输出值。这是什么,这使得这种变化?

例如: 在独立的普通Java程序中

System.out.println("Java is Wonderful")在eclipse控制台上打印

但是如果我在java文件中编写相同的句子,即Web应用程序的一部分,并且该应用程序部署在JBoss上,则该值将打印在JBoss控制台和服务器日志上。

我所知道的是" out"指系统控制台,所以如果我sysout任何东西它应该写入系统的控制台。那么为什么在JBoss上部署Web应用程序的情况下,它会在Server控制台上编写。

2 个答案:

答案 0 :(得分:2)

System.out的值最初是作为运行应用程序的JVM的“标准输出”流。

  • 在Eclipse中运行应用程序时,Eclipse已将System.setOut(...)用于写入Eclipse控制台的流。

  • 从Eclipse启动JVM时,JVM的System.out将开始引用Eclipse控制台。 JVM中的应用程序可以然后使用System.setOut(...)更改它。

  • 从命令行启动JVM时,JVM的System.out将开始引用shell的控制台。

  • 对于像JBoss这样的东西,启动脚本(或本机启动器)可能会在启动应用程序之前更改标准输出流。它应该在某处记录......


因此,要确切了解发生了什么,您需要查看 如何启动JBoss。

但没有什么特别神秘的。

答案 1 :(得分:0)

您的服务器的启动脚本可能包含...> stdout.txt 2> stderr.txt...> allout.txt 2>&1之类的内容。它在类似unix的操作系统中重定向标准IO。其他操作系统也有类似的命令。