Java 带弹性豆茎的Logback

Java 带弹性豆茎的Logback,java,amazon-web-services,tomcat,amazon-elastic-beanstalk,logback,Java,Amazon Web Services,Tomcat,Amazon Elastic Beanstalk,Logback,我在使用Elastic Beanstalk记录应用程序日志时遇到问题。我正在AWS Elastic Beanstalk上运行一个spring mvc(不是springboot)WAR文件,该文件位于“64位Amazon Linux 2/4.1.3上运行Corretto 11的Tomcat 8.5”环境中 以前我认为问题在于我无法检索应用程序编写的日志。然而,在遵循这个问题()中的建议之后,我能够确定查看日志没有问题-实际的问题是日志甚至没有被写入。我使用ssh连接到实例,但日志文件未在/var/

我在使用Elastic Beanstalk记录应用程序日志时遇到问题。我正在AWS Elastic Beanstalk上运行一个spring mvc(不是springboot)WAR文件,该文件位于“64位Amazon Linux 2/4.1.3上运行Corretto 11的Tomcat 8.5”环境中

以前我认为问题在于我无法检索应用程序编写的日志。然而,在遵循这个问题()中的建议之后,我能够确定查看日志没有问题-实际的问题是日志甚至没有被写入。我使用ssh连接到实例,但日志文件未在/var/log目录中创建

以下是我的日志文件appender(链接问题中的完整logback.xml),仅供参考:


/var/log/java.log
/var/log/java_%d{yyyy-MM-dd}%i.log
14
10MB
%d{yyyy-MM-dd'HH:MM:ss.SSSZ}[%thread][%X{remoteHost}]]-5级别%c{1}-%msg%n
该应用程序正在使用slf4j-api-1.7.6、logback-classic-1.2.3和logback-core-1.2.3。当在Tomcat服务器上本地加载相同的war时,应用程序日志可以正常工作

所以现在我想知道(1)logback对弹性豆茎有效吗?(2) 如果是,是否需要一些特殊的东西(权限、其他依赖项)来根据注释将日志写入
/var/logs
目录?

该问题是由权限引起的。默认情况下,EB上的用户应用程序无权访问
/var/logs


解决方案是修改权限,以便日志可以放在
/var/log/tomcat

中,默认情况下,您的应用程序无权访问
/var/logs
。这可以解释为什么没有日志。将日志存储在应用文件夹中,并设置EB以监视该文件夹。您是正确的!是权限问题。我终于可以看到应用程序日志了。我把它放在
/var/log/tomcat
文件夹中,而不是app文件夹中,这样我就不必添加任何新配置来监视新文件夹。谢谢你的帮助。你能把答案贴出来让我接受吗?这可能也会帮助其他人。很高兴它成功了:-)回答补充道。
<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>