Как вывести текст на консоль из сервлета - PullRequest
9 голосов
/ 20 марта 2010

У меня есть сервлет. Но это не работает, как хотелось бы. Поэтому для целей отладки я хочу напечатать операторы на консоли Java (те, которые можно открыть с помощью значка Java на панели задач). Однако, если я использую System.out.println ("message"), он не отображается в консоли Java.

Есть ли альтернативный способ отображения сообщений на консоли из сервлета? Или кто-нибудь может предложить мне альтернативный способ отображения сообщений на любой другой консоли?

Ответы [ 5 ]

10 голосов
/ 20 марта 2010

В какой консоли вы ожидаете его появления?

В зависимости от контейнера сервлета (я полагаю, Tomcat) журналы хранятся в папке logs. Для Tomcat это tomcat/logs (или чаще упоминается как CATALINA_HOME/logs). Если вы запускаете его из IDE - они должны быть в консоли IDE.

В качестве идентификатора использование System.out не рекомендуется для реального продукта - используйте каркас ведения журнала (например, log4j ).

2 голосов
/ 20 марта 2010

Я хочу напечатать операторы на консоли Java (те, которые можно открыть с помощью значка Java на панели задач)

Вы должны понимать, что сервлеты на самом деле работают на стороне сервера , а не на стороне клиента . Фактически это две физически разные среды, которые взаимодействуют друг с другом через сеть по протоколу HTTP. Эта консоль Java будет работать только для программ Java, которые выполняются на клиентской стороне , например applets и JNLP .

В вашем случае вам просто нужно прочитать логи сервера. Вот где stdout будет по умолчанию печатать или использовать более настраиваемую структуру ведения журнала, такую ​​как logback . Журналы сервера обычно находятся в простой папке / файле в каталоге установки сервера, например, /logs в случае Tomcat.

1 голос
/ 23 июля 2014

Сервлет (HttpServlet) имеет журнал методов (String s), унаследованный от класса GenericServlet.

Так что вы можете просто включить

log("output text")

в коде сервлета и смотрите вывод.

Если вы используете Eclipse, журнал идет прямо в консоль.

Если вы используете журнал IntellijIdea, перейдите в меню «Выполнить» -> «Tomcat Localhost Log».

1 голос
/ 21 марта 2010

Найдите файл журнала в папке журнала вашего контейнера сервлетов (например, Tomcat).

Как предложено, используйте log4j для генерации отладочных сообщений. Эта структура ведения журнала предоставляет файл конфигурации, в котором вы можете установить такие вещи, как, куда должны записываться журналы или как должны форматироваться сообщения журнала. Как только он на месте, вы можете заменить

System.out.println("message");

с

log.debug("your debug message");

или

log.info("in case of a message with info character");
log.error("routine foo has experienced an exception", e);

Теперь ваш код намного чище, и есть еще одно преимущество - при правильном размещении эти журналы действуют как документация для ваших сегментов кода.

0 голосов
/ 20 марта 2010

Вы должны использовать ведение журнала, например, java.util.logging или log4j

Пример соответствующей конфигурации log4j:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender> 

  <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
  </root>

...