使用 Elastic Beanstalk 进行登录
Logback with Elastic Beanstalk
我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题。我是 运行 spring mvc(不是 springboot)WAR 'Tomcat 8.5 with Corretto 11 running on 64bit Amazon Linux 2/4.1.3' 环境中 AWS Elastic Beanstalk 上的文件。
以前我认为问题是我无法检索应用程序写入的日志。但是,在按照这个问题 () 中的建议进行操作后,我能够确定查看日志没有问题 - 实际问题是甚至没有写入日志。我 ssh 到实例,但日志文件未在 /var/log 目录
中创建
作为参考,这是我的 logback 文件附加程序(链接问题中的完整 logback.xml):
<appender name="APPLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/java.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/var/log/java_%d{yyyy-MM-dd}_%i.log</FileNamePattern>
<!-- keep 14 days' worth of history -->
<maxHistory>14</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the File size reaches 10MB -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} [%thread][%X{remoteHost}] %-5level %c{1} - %msg%n</pattern>
<!-- <pattern>%d %-5p %c{1} - %m%n</pattern> -->
</encoder>
</appender>
该应用正在使用 slf4j-api-1.7.6、logback-classic-1.2.3 和 logback-core-1.2.3。在本地 Tomcat 服务器上加载相同的 war 时,应用程序日志按预期工作。
所以现在我想知道 (1) logback 是否适用于 Elastic Beanstalk? (2) 如果是,是否需要一些特殊的东西(权限?,其他依赖项)才能将日志写入 /var/logs
目录?
根据评论。
问题是由权限引起的。默认情况下,EB 上的用户应用程序无权访问 /var/logs
.
解决办法是修改权限,让日志可以放在/var/log/tomcat
。
我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题。我是 运行 spring mvc(不是 springboot)WAR 'Tomcat 8.5 with Corretto 11 running on 64bit Amazon Linux 2/4.1.3' 环境中 AWS Elastic Beanstalk 上的文件。
以前我认为问题是我无法检索应用程序写入的日志。但是,在按照这个问题 (
作为参考,这是我的 logback 文件附加程序(链接问题中的完整 logback.xml):
<appender name="APPLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/java.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/var/log/java_%d{yyyy-MM-dd}_%i.log</FileNamePattern>
<!-- keep 14 days' worth of history -->
<maxHistory>14</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the File size reaches 10MB -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} [%thread][%X{remoteHost}] %-5level %c{1} - %msg%n</pattern>
<!-- <pattern>%d %-5p %c{1} - %m%n</pattern> -->
</encoder>
</appender>
该应用正在使用 slf4j-api-1.7.6、logback-classic-1.2.3 和 logback-core-1.2.3。在本地 Tomcat 服务器上加载相同的 war 时,应用程序日志按预期工作。
所以现在我想知道 (1) logback 是否适用于 Elastic Beanstalk? (2) 如果是,是否需要一些特殊的东西(权限?,其他依赖项)才能将日志写入 /var/logs
目录?
根据评论。
问题是由权限引起的。默认情况下,EB 上的用户应用程序无权访问 /var/logs
.
解决办法是修改权限,让日志可以放在/var/log/tomcat
。