Где находится 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 .