Beanstalk 升级到“64 位 Amazon Linux 2 v4.1.2 运行 Tomcat 8.5 Corretto 8”后缺少 tomcat 日志 (catalina.out)

Missing tomcat logs (catalina.out) after Beanstalk upgrade to "64bit Amazon Linux 2 v4.1.2 running Tomcat 8.5 Corretto 8"

我正在尝试升级 beantalk 版本 “64 位亚马逊 Linux 2018.03 v3.4.0 运行 Tomcat 8.5 Java 8” 到“64 位亚马逊 Linux 2 v4.1.2 运行 Tomcat 8.5 Corretto 8”。我已经在新平台版本上成功部署了我的应用程序 运行(它是一个简单的应用程序 - 我没有任何 ebextension 脚本)。

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

升级前 Beanstalk 日志导出

升级后导出 Beanstalk 日志

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

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

以防万一有人遇到同样的问题。我得出结论(假设)缺少 catalina.out 是由于 beantalk 平台升级,日志记录配置在“/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

Juri 的出色解决方案。这是我最后做的,解决了 Matt

提到的文件所有权和组
.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: touch /var/log/tomcat/catalina.out && chown tomcat /var/log/tomcat/catalina.out && chgrp tomcat /var/log/tomcat/catalina.out && systemctl restart rsyslog