问题描述
我正在尝试从以下版本升级beantalk版本 “ 运行Tomcat 8.5 Java 8的64位Amazon Linux 2018.03 v3.4.0 ” 到“运行Tomcat 8.5 Corretto 8的64位Amazon Linux 2 v4.1.2”。我已经将我的应用程序部署在新平台版本上成功运行(它是一个简单的应用程序-我没有任何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