簡體   English   中英

使用 AWS Elastic Beanstalk 進行應用程序日志記錄

[英]Application logging with AWS Elastic Beanstalk

我已經在 Tomcat 8.5 和 Java 8 的環境中將 WAR 部署到 AWS Elastic Beanstalk。應用程序加載並運行良好。 但是,當我 go 檢查日志(環境 -> 日志 -> 最后 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>

在一篇 Medium 帖子中,我了解到我們需要配置 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)配置文件是正確的(這就是我使用的),但是需要將 go 放入您的 webapp 目錄中的.ebextensions文件夾中:

在此處輸入圖像描述

(2) 您需要更改日志文件的位置。 由於文件夾權限問題,您的應用無法寫入 var/log 文件夾,但可以寫入 var/log/tomcat 文件夾。

您可以在此處找到有關我的問題的更多詳細信息: AWS Elastic Beanstalk Application Logging with Logback

希望它對你有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM