8

我正在尝试将 beanstalk 版本从“运行 Tomcat 8.5 Java 8 的 64bit Amazon Linux 2018.03 v3.4.0 ”升级到“运行 Tomcat 8.5 Corretto 8 的 64bit Amazon Linux 2 v4.1.2”。我让我的应用程序在新平台版本上成功运行(它是一个简单的应用程序 - 我没有任何 ebextension 脚本)。

但是我错过了日志文件“var/log/tomcat/catalina.out”。它不见了,我瞎了!

升级前的 Beanstalk 日志导出
在此处输入图像描述

升级后的 Beanstalk 日志导出
在此处输入图像描述

比较 beanstalk 日志导出,似乎 ec2 实例上的日志目录已从“var/log/tomcat8”更改为“var/log/tomcat”,并且“var/log/tomcat/catalina.out”丢失。

并且非常感谢如何取回catalina.out文件的提示或想法。

4

1 回答 1

12

以防万一有人偶然发现同样的问题。我得出结论(假设)缺少 catalina.out 是由于 beanstalk 平台升级,其日志配置在“/usr/libexec/tomcat/server”下定义并且没有输出重定向到 catalina.out。

您可以使用 .ebextension 脚本取回 catalina.out:

.ebextensions cat catlina.config
files:
    "/etc/rsyslog.d/catalina.conf":
        mode: "0655"
        owner: root
        group: root
        content: |
            #redirect tomcat logs to /var/log/tomcat/catalina.out discarding timestamps since the messages already have them
            template(name="catalinalog" type="string"
                string="%msg%\n")
            if $programname  == 'server' then {
              *.=warning;*.=err;*.=crit;*.=alert;*.=emerg /var/log/tomcat/catalina.out;catalinalog
              *.=info;*.=notice /var/log/tomcat/catalina.out;catalinalog
             }
commands:
    restart_rsyslog:
        command: systemctl restart rsyslog

重新部署应用程序,您可以在“/var/log/tomcat/”下看到 catalina.out

于 2020-10-16T14:52:02.937 回答