From dc74d7054617d371bf27181e0cb60689e3ab27ee Mon Sep 17 00:00:00 2001 From: Diego Lagos <92735530+diegolagospagopa@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:02:14 +0100 Subject: [PATCH] fix: logback configuration to save logs into file system (#77) * removed gc log and added Europe/Rome timezone * fix: logging into file --- Dockerfile | 17 +++++++-- docker-compose.yaml | 16 ++++++-- src/main/resources/application.yml | 5 ++- src/main/resources/logback-spring.xml | 55 ++++++++++++++++++--------- 4 files changed, 67 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6a69d11..dc032d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,14 @@ RUN apk add --no-cache \ curl \ tzdata \ && addgroup -S javauser \ - && adduser -S javauser -G javauser + && adduser -S javauser -G javauser \ + # Set system timezone + && cp /usr/share/zoneinfo/Europe/Rome /etc/localtime \ + && echo "Europe/Rome" > /etc/timezone + +# Create log directory and set permissions +RUN mkdir -p /app/logs && \ + chown -R javauser:javauser /app/logs # Copy application bundle COPY --from=builder /build/target/*.jar app.jar @@ -31,17 +38,19 @@ USER javauser ENV JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75.0 \ -XX:InitialRAMPercentage=50.0 \ -XX:+UseG1GC \ - -Xlog:gc*:/app/gc.log \ -Djava.security.egd=file:/dev/./urandom \ - -Duser.timezone=UTC" + -Duser.timezone=Europe/Rome" # Application Insights configuration ENV APPLICATIONINSIGHTS_CONNECTION_STRING="" ENV APPLICATIONINSIGHTS_ROLE_NAME="devops-java-springboot-color" +# Add volume for logs +VOLUME /app/logs + # Configure container EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=3s --start-period=30s --retries=3 \ CMD curl -f http://localhost:8080/actuator/health || exit 1 -ENTRYPOINT ["java", "-javaagent:/app/applicationinsights-agent.jar", "-jar", "/app/app.jar"] +ENTRYPOINT ["java", "-javaagent:/app/applicationinsights-agent.jar", "-jar", "/app/app.jar"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 868a4f0..db27a79 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,13 +1,23 @@ version: "3.8" services: devops-java-springboot-color: - # image: "ghcr.io/pagopa/devops-java-springboot-color:snapshot-upgrade-java-21" build: dockerfile: ./Dockerfile context: . container_name: devops-java-springboot-color restart: always - # environment: - # - MY_APP_COLOR=red ports: - "8080:8080" + volumes: + - ${PWD}/logs:/app/logs + environment: + - LOGGING_LEVEL_ROOT=INFO + - LOGGING_LEVEL_IT_PAGOPA_DEVOPS=DEBUG + - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK=INFO + - MY_APP_COLOR=red + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"] + interval: 30s + timeout: 3s + retries: 3 + start_period: 30s diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 28ff3d1..74cfa98 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -35,7 +35,8 @@ management: logging: level: root: INFO - org.springframework: DEBUG + org.springframework: INFO it.pagopa.devops: DEBUG file: - name: ${java.io.tmpdir}/application.log + name: /app/logs/application.log + path: /app/logs diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index b714625..a5c3cc0 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -2,52 +2,73 @@ - + - + + - - + + ${CONSOLE_LOG_PATTERN} - - + + %msg%n - + true 20000 0 - + true 20000 0 + + + %d{ISO8601} %highlight(%-5level) [%blue(%t)] %yellow(%C{1}): %msg%n%throwable + + + + + ${LOGS}/application.log + + %d{ISO8601} %-5level [%t] %C{1}: %msg%n%throwable + + + + + ${LOGS}/archived/application-%d{yyyy-MM-dd}.%i.log + 10MB + 7 + 100MB + + + + + - + + + + + + \ No newline at end of file