Logback ด้วย Elastic Beanstalk

Nov 28 2020

ฉันมีปัญหากับการบันทึกบันทึกแอปพลิเคชันด้วย Elastic Beanstalk ฉันกำลังเรียกใช้ไฟล์ Spring mvc (ไม่ใช่ springboot) WAR บน AWS Elastic Beanstalk บน 'Tomcat 8.5 พร้อม Corretto 11 ที่ทำงานบนสภาพแวดล้อม 64 บิต Amazon Linux 2 / 4.1.3'

ก่อนหน้านี้ฉันคิดว่าปัญหาคือฉันไม่สามารถเรียกบันทึกที่เขียนโดยแอปพลิเคชันได้ อย่างไรก็ตามหลังจากทำตามข้อเสนอแนะในคำถามนี้ ( AWS Elastic Beanstalk Application Logging with Logback ) ฉันสามารถระบุได้ว่าไม่มีปัญหาในการดูบันทึก - ปัญหาที่แท้จริงคือไม่มีการเขียนบันทึกด้วยซ้ำ ฉัน ssh ไปยังอินสแตนซ์และไฟล์บันทึกไม่ได้ถูกสร้างในไดเร็กทอรี / var / log

สำหรับการอ้างอิงนี่คือ appender ไฟล์ 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 ในเครื่อง

ตอนนี้ฉันสงสัยว่า (1) การบันทึกย้อนกลับใช้งานได้กับ Elastic Beanstalk หรือไม่? (2) ถ้าใช่จำเป็นต้องมีสิ่งพิเศษ (สิทธิ์หรือไม่, การอ้างอิงอื่น ๆ ) เพื่อเขียนบันทึกลงใน/var/logsไดเร็กทอรีหรือไม่?

คำตอบ

1 Marcin Nov 28 2020 at 08:34

ขึ้นอยู่กับความคิดเห็น

ปัญหานี้เกิดจากสิทธิ์ โดยแอปพลิเคชันผู้ใช้เริ่มต้นบน EB ไม่สามารถเข้าถึง/var/logsได้

/var/log/tomcatการแก้ปัญหาคือการปรับเปลี่ยนสิทธิ์เพื่อให้บันทึกสามารถอยู่ใน