tomcat 9 中的 catalina.out 在哪里?

Dar*_*ar1 5 tomcat logging tomcat9

我刚刚部署了 tomcat 9,我想在它运行时检查 catalina.out 日志,但是我注意到当它停止时,它会将日志输出转储到 catalina.[date].txt 文件中。是否需要做一些额外的配置来启用 catalina.out 的实时日志记录?

小智 5

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
Run Code Online (Sandbox Code Playgroud)


Fre*_*edi 4

默认情况下,至少在 Linux 上,我所知道的每个版本的 Tomcat 都会在该 var 内的文件名中写入控制台登录信息$TOMCAT_HOME/logs/catalina.out或如果定义的话。$CATALINA_OUT

实际上这是从启动脚本完成的,这是 Tomcat 9.0.0.M13 中启动脚本的相关部分,但其他版本也这样做, file:$TOMCAT_HOME/bin/startup.sh调用catalina.sh

启动.sh:

#!/bin/sh 

[...]

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

[...]

exec "$PRGDIR"/"$EXECUTABLE" start "$@"
Run Code Online (Sandbox Code Playgroud)

卡特琳娜.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 "&"
Run Code Online (Sandbox Code Playgroud)



因此,要么您在某处设置该 var,要么您在不使用启动脚本的情况下启动 tomcat。