Tengo problemas para registrar registros de aplicaciones con Elastic Beanstalk. Estoy ejecutando un archivo WAR spring mvc (NO springboot) en AWS Elastic Beanstalk en un entorno 'Tomcat 8.5 con Corretto 11 ejecutándose en un entorno Amazon Linux 2/4.1.3 de 64 bits'.
Anteriormente, pensaba que el problema era que no podía recuperar los registros escritos por la aplicación. Sin embargo, después de seguir la sugerencia en esta pregunta ( AWS Elastic Beanstalk Application Logging with Logback ), pude determinar que no había ningún problema al ver los registros; el problema real es que los registros ni siquiera están escritos. Hice ssh a la instancia y el archivo de registro no se creó en el directorio /var/log
Como referencia, aquí está mi agregador de archivo de inicio de sesión (logback.xml completo en la pregunta vinculada):
<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>La aplicación usa slf4j-api-1.7.6, logback-classic-1.2.3 y logback-core-1.2.3. Los registros de la aplicación funcionan como se esperaba al cargar la misma guerra en el servidor Tomcat localmente.
Ahora me pregunto (1) ¿Funciona el inicio de sesión con Elastic Beanstalk? (2) En caso afirmativo, ¿se requiere algo especial (¿permisos?, otras dependencias) para escribir registros en el directorio /var/logs ?
Basado en los comentarios.
El problema fue causado por los permisos. Por defecto, las aplicaciones de usuario en EB no tienen acceso a /var/logs .
La solución fue modificar los permisos para que los registros se puedan colocar en /var/log/tomcat .