Как к ouput тексту к консоли от Сервлета

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

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

9
задан giannis christofakis 8 February 2017 в 09:08
поделиться

4 ответа

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

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

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

10
ответ дан 4 December 2019 в 13:47
поделиться

Вам следует использовать ведение журнала, например 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>

0
ответ дан 4 December 2019 в 13:47
поделиться

Найдите файл журнала в папке log вашего контейнера сервлетов (т.е. 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);

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

1
ответ дан 4 December 2019 в 13:47
поделиться

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

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

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

2
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: