使用 AWS Elastic Beanstalk 进行应用程序日志记录
Application logging with AWS Elastic Beanstalk
我已经在 Tomcat 8.5 和 Java 8 的环境中将 WAR 部署到 AWS Elastic Beanstalk。应用程序加载并运行良好。但是,当我去检查日志(环境 -> 日志 -> 最后 100 行或完整日志)时,我看不到应用程序写入的日志。还有一些其他日志,如 tomcat/activity/boot 等,但不是我的应用程序编写的日志。当 运行 在本地而不是在 AWS 上时,日志按预期工作。
下面是我的 logback.xml 文件:
<configuration debug="true">
<appender name="APPLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/my_app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/var/log/my_app_%d{yyyy-MM-dd}_%i.log</FileNamePattern>
<maxHistory>7</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>5MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %-5level %c{1} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="LOGFILE" />
</root>
</configuration>
在其中一个媒体 post 中,我了解到我们需要配置 EB 环境,以便应用程序的日志包含在日志包中。所以我将以下配置文件放在应用程序的资源目录中:
files:
"/opt/elasticbeanstalk/tasks/bundlelogs.d/applogs.conf" :
mode: "000755"
owner: root
group: root
content: |
/var/log/*.log
"/opt/elasticbeanstalk/tasks/taillogs.d/applogs.conf" :
mode: "000755"
owner: root
group: root
content: |
/var/log/*.log
但这并没有帮助,应用程序的日志行为没有任何变化。
到目前为止,这是一个令人沮丧的考验,希望得到一些帮助。
我在将应用程序部署到 AWS 时遇到过类似的日志记录问题。
一些注意事项:
(1) 配置文件是正确的(这就是我使用的),但它需要进入您的 webapp 目录中的 .ebextensions
文件夹:
(2) 您需要更改日志文件的位置。由于文件夹权限问题,您的应用无法写入 var/log 文件夹,但可以写入 var/log/tomcat 文件夹。
您可以在此处找到有关我的问题的更多详细信息:
希望对你有用!
我已经在 Tomcat 8.5 和 Java 8 的环境中将 WAR 部署到 AWS Elastic Beanstalk。应用程序加载并运行良好。但是,当我去检查日志(环境 -> 日志 -> 最后 100 行或完整日志)时,我看不到应用程序写入的日志。还有一些其他日志,如 tomcat/activity/boot 等,但不是我的应用程序编写的日志。当 运行 在本地而不是在 AWS 上时,日志按预期工作。
下面是我的 logback.xml 文件:
<configuration debug="true">
<appender name="APPLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/my_app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/var/log/my_app_%d{yyyy-MM-dd}_%i.log</FileNamePattern>
<maxHistory>7</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>5MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %-5level %c{1} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="LOGFILE" />
</root>
</configuration>
在其中一个媒体 post 中,我了解到我们需要配置 EB 环境,以便应用程序的日志包含在日志包中。所以我将以下配置文件放在应用程序的资源目录中:
files:
"/opt/elasticbeanstalk/tasks/bundlelogs.d/applogs.conf" :
mode: "000755"
owner: root
group: root
content: |
/var/log/*.log
"/opt/elasticbeanstalk/tasks/taillogs.d/applogs.conf" :
mode: "000755"
owner: root
group: root
content: |
/var/log/*.log
但这并没有帮助,应用程序的日志行为没有任何变化。 到目前为止,这是一个令人沮丧的考验,希望得到一些帮助。
我在将应用程序部署到 AWS 时遇到过类似的日志记录问题。
一些注意事项:
(1) 配置文件是正确的(这就是我使用的),但它需要进入您的 webapp 目录中的 .ebextensions
文件夹:
(2) 您需要更改日志文件的位置。由于文件夹权限问题,您的应用无法写入 var/log 文件夹,但可以写入 var/log/tomcat 文件夹。
您可以在此处找到有关我的问题的更多详细信息:
希望对你有用!