Logback za pomocą Elastic Beanstalk

Nov 28 2020

Mam problem z rejestrowaniem dzienników aplikacji za pomocą Elastic Beanstalk. Uruchamiam wiosenny plik mvc (NIE springboot) WAR na AWS Elastic Beanstalk na środowisku „Tomcat 8.5 z Corretto 11 działającym na 64-bitowym systemie Amazon Linux 2 / 4.1.3”.

Wcześniej myślałem, że problem polega na tym, że nie mogę pobrać dzienników, które zostały zapisane przez aplikację. Jednak po wykonaniu sugestii w tym pytaniu ( AWS Elastic Beanstalk Application Logging with Logback ) udało mi się ustalić, że nie było problemu z przeglądaniem logów - rzeczywisty problem polega na tym, że logi nie są nawet zapisywane. I ssh do instancji, a plik dziennika nie został utworzony w katalogu / var / log

Dla porównania, oto mój appender pliku logback (pełny logback.xml w powiązanym pytaniu):

<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>

Aplikacja wykorzystuje slf4j-api-1.7.6, logback-classic-1.2.3 i logback-core-1.2.3. Dzienniki aplikacji działają zgodnie z oczekiwaniami podczas lokalnego ładowania tej samej wojny na serwerze Tomcat.

Więc teraz się zastanawiam (1) Czy logback działa z Elastic Beanstalk? (2) Jeśli tak, czy do zapisywania dzienników w /var/logskatalogu potrzebne jest coś specjalnego (uprawnienia?, Inne zależności) ?

Odpowiedzi

1 Marcin Nov 28 2020 at 08:34

Na podstawie komentarzy.

Problem był spowodowany uprawnieniami. Domyślnie aplikacje użytkownika na EB nie mają dostępu do /var/logs.

Rozwiązaniem była modyfikacja uprawnień, aby można było umieszczać logi /var/log/tomcat.