用aws elastic beanstalk记录java应用程序

ahy6op9u  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(317)

我已经在使用tomcat8.5和java8的环境中为aws弹性beanstalk部署了一个war。应用程序加载并正常工作。但是,当我去检查日志(environment->logs->last 100 line或full logs)时,我看不到应用程序编写的日志。还有一些其他的日志,比如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>

在一篇中篇文章中,我了解到我们需要配置eb环境,以便将应用程序的日志包含在日志包中。因此,我将以下配置文件放在应用程序的resources目录中:

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

但这并没有帮助,应用程序的日志行为没有任何变化。到目前为止,这是一场令人沮丧的磨难,希望能得到一些帮助。

mm9b1k5b

mm9b1k5b1#

当我将我的应用程序部署到aws时,我在日志记录方面也遇到了类似的问题。
值得注意的是:
(1) 配置文件是正确的(这就是我使用的),但这需要进入一个 .ebextensions webapp目录中的文件夹:

(2) 您需要更改日志文件的位置。你的应用程序无法写入var/log文件夹,但由于文件夹权限问题,可以写入var/log/tomcat文件夹。
您可以在这里找到关于我的问题的更多细节:aws elastic beanstalk应用程序logging with logback
希望你能成功!

相关问题