2014-10-19 3 views
1

Использование Eclipse:System.out.println печать на сервер

Когда мы обычно SYSOUT что-нибудь в Java файл, он выводит на консоль затмение, но когда наше приложение развертывается на Jboss затем SYSOUT выводит значение на консоли сервера и журналы сервера. Что это, что делает это изменение?

Для например: В автономном нормальном Java Программа

System.out.println("Java is Wonderful") печатает на консоли Eclipse

Но если я пишу то же самое предложение в Java-файл, т.е. части веб-приложении и развертывание приложения на JBoss тогда значение будет напечатано на консоли JBoss и журналах сервера.

То, что я знаю, является «вне», относится к системной консоли, поэтому, если я запустил все, что он должен записать на консоль системы. Тогда почему в случае развертывания веб-приложения на JBoss его можно записать на консоли сервера.

ответ

2

Значение System.out начинается как поток «стандартного вывода» для JVM, на котором запущено приложение.

  • При запуске приложения в Eclipse, Eclipse, использовал System.setOut(...) в поток, который записывает в консоль Eclipse.

  • Когда вы запускаете JVM из Eclipse, начнется обратный вызов JVM System.out, относящийся к консоли Eclipse. Приложение в JVM могло бы затем изменить его с помощью System.setOut(...).

  • Когда вы запускаете JVM из командной строки, JVM's System.out начнет возвращаться к консоли консоли.

  • Для чего-то вроде JBoss, вероятно, что сценарий запуска (или собственный пусковой механизм) изменит стандартный выходной поток до, он запустит приложение. Это должно быть документировано где-то ...


Так точно выяснить, что происходит, вам нужно будет смотреть на как вы запускаете JBoss.

Но нет ничего особенно загадочного в этом.

0

Стартовый скрипт вашего сервера, вероятно, содержит что-то вроде ...> stdout.txt 2> stderr.txt или ...> allout.txt 2>&1. Он перенаправляет стандартную IO в unix-подобные системы опоры. Другие операционные системы имеют аналогичные команды.

Смежные вопросы