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