From 9e4694308ff7aca36cb33d3028696e1dedc4a910 Mon Sep 17 00:00:00 2001 From: khaled basbous Date: Mon, 17 Feb 2025 16:10:43 +0100 Subject: [PATCH] feat(Logging): Use telemere lib for logging and observability --- README.md | 2 +- code/README.md | 10 +- .../clojure.tools.logging.to-telemere.edn | 1 + .../taoensso.telemere.rt-min-level.edn | 4 + code/project.clj | 6 +- code/test-resources/logback-test.xml | 117 ------------------ container/Dockerfile | 3 +- container/src/scripts/log4j.properties | 8 -- 8 files changed, 15 insertions(+), 136 deletions(-) create mode 100644 code/dev-resources/clojure.tools.logging.to-telemere.edn create mode 100644 code/dev-resources/taoensso.telemere.rt-min-level.edn delete mode 100644 code/test-resources/logback-test.xml delete mode 100644 container/src/scripts/log4j.properties diff --git a/README.md b/README.md index 4abb256..2655bc6 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ formatting standardized. ## Copyright -Copyright © 2019-2024, SixSq SA +Copyright © 2019-2025, SixSq SA ## License diff --git a/code/README.md b/code/README.md index c65ee64..a8c03ad 100644 --- a/code/README.md +++ b/code/README.md @@ -57,10 +57,8 @@ See the documentation in the `rpm-container` module. Logging ------- -The service assumes that `clojure.tools.logging` will be used with the -SLF4J and log4j implementation. These are included in the -dependencies. The test `log4j.properties` file will ignore all -logging. Modify this if you want to see the logging while testing. +The service assumes that `clojure.tools.logging` or `com.taoensso/telemere` +will be used. -The containerized server will provide a `log4j.properties` file that -logs everything to the console (as is typical for containers). +The containerized server will provide env variables that +logs info level and above to the console (as is typical for containers). diff --git a/code/dev-resources/clojure.tools.logging.to-telemere.edn b/code/dev-resources/clojure.tools.logging.to-telemere.edn new file mode 100644 index 0000000..f32a580 --- /dev/null +++ b/code/dev-resources/clojure.tools.logging.to-telemere.edn @@ -0,0 +1 @@ +true \ No newline at end of file diff --git a/code/dev-resources/taoensso.telemere.rt-min-level.edn b/code/dev-resources/taoensso.telemere.rt-min-level.edn new file mode 100644 index 0000000..e3774c3 --- /dev/null +++ b/code/dev-resources/taoensso.telemere.rt-min-level.edn @@ -0,0 +1,4 @@ +{:default :info + ;:slf4j [["*" :debug] + ; ["org.apache.zookeeper.*" :error]] + } \ No newline at end of file diff --git a/code/project.clj b/code/project.clj index 2fe0f27..05315cf 100644 --- a/code/project.clj +++ b/code/project.clj @@ -1,6 +1,6 @@ (def parent-version "6.8.0") (def slf4j-version "2.0.12") -(def logback-version "1.5.3") +(def telemere-version "1.0.0-RC2") (defproject com.sixsq.nuvla/ring ; x-release-please-start-version @@ -43,8 +43,8 @@ [org.slf4j/log4j-over-slf4j ~slf4j-version] [org.slf4j/jul-to-slf4j ~slf4j-version] [org.slf4j/jcl-over-slf4j ~slf4j-version] - [ch.qos.logback/logback-classic ~logback-version] - [ch.qos.logback/logback-core ~logback-version]] + [com.taoensso/telemere ~telemere-version] + [com.taoensso/telemere-slf4j ~telemere-version]] :profiles {:test {:source-paths ["test"] diff --git a/code/test-resources/logback-test.xml b/code/test-resources/logback-test.xml deleted file mode 100644 index dbfe371..0000000 --- a/code/test-resources/logback-test.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - INFO - - - - - - %date - %-5level - %logger - [%thread] - %msg%n - UTF-8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - diff --git a/container/Dockerfile b/container/Dockerfile index a89cf81..cf36ce0 100644 --- a/container/Dockerfile +++ b/container/Dockerfile @@ -15,7 +15,6 @@ LABEL ci.build.number=${CI_BUILD_NUMBER} LABEL ci.build.web.url=${CI_BUILD_WEB_URL} COPY target/dependency/lib /opt/nuvla/server/lib -COPY src/scripts/log4j.properties /opt/nuvla/server/resources/ COPY src/scripts/start.sh /opt/nuvla/server/bin/ RUN chmod 0755 /opt/nuvla/server/bin/start.sh \ && mkdir -p /opt/nuvla/server/lib.d/ @@ -26,6 +25,8 @@ RUN apk upgrade --update-cache --available && \ rm -rf /var/cache/apk/* ENV NUVLA_SERVER_INIT=com.sixsq.nuvla.server.example/init +ENV CLOJURE_TOOLS_LOGGING_TO_TELEMERE=true +ENV TAOENSSO_TELEMERE_RT_MIN_LEVEL='{:default :info #_:slf4j #_[["*" :debug] ["org.apache.zookeeper.*" :error]]}' EXPOSE 8200 diff --git a/container/src/scripts/log4j.properties b/container/src/scripts/log4j.properties deleted file mode 100644 index f4c20e0..0000000 --- a/container/src/scripts/log4j.properties +++ /dev/null @@ -1,8 +0,0 @@ -log4j.rootLogger=INFO, A1 - -log4j.appender.A1=org.apache.log4j.ConsoleAppender -log4j.appender.A1.target=System.out -log4j.appender.A1.encoding=UTF-8 - -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} %-5p - %m%n