Где находится catalina.out в tomcat 9?

Я только недавно развернул tomcat 9, и я хотел бы проверить журнал catalina.out во время его работы, однако я заметил, что при остановке он выводит данные журнала в файл catalina.[Date].txt. Нужно ли выполнить дополнительную настройку, чтобы активировать запись в реальном времени на catalina.out?

3 ответа

Ubuntu 18.04 и 20.04 теперь используют systemd и регистрируются в журнале. Чтобы изменить это, сделайте следующее:

Отредактируйте файл: /lib/systemd/system/tomcat9.service

Закомментируйте строку: SyslogIdentifier=tomcat9

и добавьте эти две строки:

StandardOutput=append:/var/log/tomcat9/catalina.out
StandardError=append:/var/log/tomcat9/catalina.out

По умолчанию по крайней мере в Linux каждая версия Tomcat, о которой я знаю, записывает консольный журнал $TOMCAT_HOME/logs/catalina.out или если определено $CATALINA_OUTв имени файла внутри этой вар.

На самом деле это делается из стартовых скриптов, вот относительная часть стартового скрипта из Tomcat 9.0.0.M13, но другие версии делают то же самое, файл: $TOMCAT_HOME/bin/startup.sh какие звонки catalina.sh:

startup.sh:

#!/bin/sh 

[...]

PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh

[...]

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

catalina.sh:

#!/bin/sh

[...]

#   CATALINA_OUT    (Optional) Full path to a file where stdout and stderr
#                   will be redirected.
#                   Default is $CATALINA_BASE/logs/catalina.out

[...]

if [ -z "$CATALINA_OUT" ] ; then
  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi

[...]

elif [ "$1" = "start" ] ; then

[...]

    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -classpath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
       org.apache.catalina.startup.Bootstrap "$@" start \
       >> "$CATALINA_OUT" 2>&1 "&"



Итак, либо вы устанавливаете эту переменную где-либо, либо запускаете tomcat без использования стартовых скриптов.

Tomcat 9 использует systemd для стандартного вывода. Вы можете отменить это, позвонивsudo systemctl edit tomcat9

это создаст файл/etc/systemd/system/tomcat9.service.d/override.conf. Здесь вам следует добавить переопределения под соответствующим тегом [Service]:

      [Service]
StandardOutput=append:/var/log/tomcat9/catalina.out
StandardError=append:/var/log/tomcat9/catalina.out
SyslogIdentifier=

Это комбинация ответов, данных Тедом, Борей и https://askubuntu.com/questions/659267/how-do-i-override-or-configure-systemd-services .

Другие вопросы по тегам