From a6135784009e58822745d64cdfcf2361e637cb39 Mon Sep 17 00:00:00 2001 From: Malek Azadegan Date: Mon, 28 Apr 2025 18:43:43 -0400 Subject: [PATCH] Replace Timbre with Telemere and set up SLF4J bridge --- .gitignore | 2 ++ deps.edn | 6 +++--- src/dvb/server/log.clj | 23 +++++++++++++++++++---- src/dvb/server/system/log.clj | 23 +++++++++++++++++------ 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 310eb44..1526105 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,5 @@ README-PRIVATE.rst .shadow-cljs/ node_modules/ deploy/ +logs/dativebase.log +.clj-kondo/ \ No newline at end of file diff --git a/deps.edn b/deps.edn index 4b70223..afb7cb2 100644 --- a/deps.edn +++ b/deps.edn @@ -6,10 +6,10 @@ clj-http/clj-http {:mvn/version "3.12.3"} clojure.java-time/clojure.java-time {:mvn/version "1.3.0"} com.layerware/hugsql {:mvn/version "0.5.3"} - com.fzakaria/slf4j-timbre {:mvn/version "0.3.21"} com.stuartsierra/component {:mvn/version "1.1.0"} com.stuartsierra/component.repl {:mvn/version "0.2.0"} - com.taoensso/timbre {:mvn/version "6.1.0"} + com.taoensso/telemere {:mvn/version "1.0.0-RC5"} + com.taoensso/telemere-slf4j {:mvn/version "1.0.0-RC5"} hikari-cp/hikari-cp {:mvn/version "3.0.1" :exclusions [org.slf4j/slf4j-api]} metosin/reitit {:mvn/version "0.6.0" :exclusions [com.fasterxml.jackson.core/jackson-core @@ -18,7 +18,7 @@ org.clojure/java.jdbc {:mvn/version "0.7.12"} org.mindrot/jbcrypt {:mvn/version "0.4"} org.postgresql/postgresql {:mvn/version "42.6.0"} - org.slf4j/slf4j-api {:mvn/version "1.7.36"} + org.slf4j/slf4j-api {:mvn/version "2.0.13"} org.xerial/sqlite-jdbc {:mvn/version "3.41.0.0"} com.novemberain/pantomime {:mvn/version "2.11.0"} ring/ring-core {:mvn/version "1.9.6"} diff --git a/src/dvb/server/log.clj b/src/dvb/server/log.clj index a01306c..79bff81 100644 --- a/src/dvb/server/log.clj +++ b/src/dvb/server/log.clj @@ -1,12 +1,27 @@ (ns dvb.server.log (:require [dvb.server.scrub :as scrub] - [taoensso.timbre :as log])) + [taoensso.telemere :as tel])) (defmacro info [& args] - `(log/info ~@(for [a args] (if (coll? a) (scrub/scrub a) a)))) + `(tel/log! {:level :info + :msg ~(vec + (for [a args] + (if (coll? a) + (scrub/scrub a) + a)))})) (defmacro warn [& args] - `(log/warn ~@(for [a args] (if (coll? a) (scrub/scrub a) a)))) + `(tel/log! {:level :warn + :msg ~(vec + (for [a args] + (if (coll? a) + (scrub/scrub a) + a)))})) (defmacro error [& args] - `(log/error ~@(for [a args] (if (coll? a) (scrub/scrub a) a)))) + `(tel/log! {:level :error + :msg ~(vec + (for [a args] + (if (coll? a) + (scrub/scrub a) + a)))})) diff --git a/src/dvb/server/system/log.clj b/src/dvb/server/system/log.clj index c7867cb..092b2b7 100644 --- a/src/dvb/server/system/log.clj +++ b/src/dvb/server/system/log.clj @@ -1,8 +1,19 @@ (ns dvb.server.system.log - (:require [taoensso.timbre :as timbre] - [taoensso.timbre.appenders.core :as appenders])) + (:require + [taoensso.telemere :as tel])) -(defn init [log-file-path] - (timbre/merge-config! - {:min-level :info - :appenders {:spit (appenders/spit-appender {:fname log-file-path})}})) +(defn init + "Initialize logging: set level to INFO and write all logs to `log-file-path`." + [log-file-path] + (tel/set-min-level! :log :info) + (tel/add-handler! + :file + (tel/handler:file {:path log-file-path + ;; output-fn (utils/format-signal-fn) + ;; :interval :monthly + ;; :max-file-size (* 1024 1024 4) + ;; :max-num-parts 8 + ;; :max-num-intervals 6 + ;; :gzip-archives? true + })) + nil)