From 3acf86780a9666ba47e963a4d42bfea769263d78 Mon Sep 17 00:00:00 2001 From: James Reeves Date: Fri, 25 Oct 2024 11:36:51 +0100 Subject: [PATCH] Add log level to log output Change :timestamps? option to :brief?. --- README.md | 2 +- src/duct/logger/simple.clj | 12 +++++++----- test/duct/logger/simple_test.clj | 21 ++++++++++----------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 1c0a819..23e9ddb 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ type. The STDOUT logger prints to STDOUT and supports the following options: - `:levels` - a set of log levels (or `:all`) to limit the appender to -- `:timestamps?` - whether to print timestamps (defaults to true) +- `:brief?` - whether to omit timestamps and levels (defaults to false) #### File logger diff --git a/src/duct/logger/simple.clj b/src/duct/logger/simple.clj index 9033949..8ee1a2f 100644 --- a/src/duct/logger/simple.clj +++ b/src/duct/logger/simple.clj @@ -17,11 +17,13 @@ (let [space (int \space) newline (int \newline)] (defn- write-logline - [writer logline print-level? timestamps?] + [writer logline print-level? brief?] (let [[time level _ns-str _file _line _id event data] logline] (when (print-level? level) - (when timestamps? + (when-not brief? (.write writer (str time)) + (.write writer space) + (.write writer (str level)) (.write writer space)) (.write writer (str event)) (when data @@ -32,16 +34,16 @@ (defmulti make-appender :type) (defmethod make-appender :stdout - [{:keys [levels timestamps?] :or {levels :all, timestamps? true}}] + [{:keys [levels brief?] :or {levels :all, brief? false}}] (let [print-level? (level-checker levels)] - (fn [log] (write-logline *out* log print-level? timestamps?)))) + (fn [log] (write-logline *out* log print-level? brief?)))) (defmethod make-appender :file [{:keys [levels path] :or {levels :all}}] (let [print-level? (level-checker levels) writer (io/writer (io/file path) :append true)] (reify clojure.lang.IFn - (invoke [_ log] (write-logline writer log print-level? true)) + (invoke [_ log] (write-logline writer log print-level? false)) java.io.Closeable (close [_] (.close writer))))) diff --git a/test/duct/logger/simple_test.clj b/test/duct/logger/simple_test.clj index 19012c0..83882f2 100644 --- a/test/duct/logger/simple_test.clj +++ b/test/duct/logger/simple_test.clj @@ -11,12 +11,12 @@ (let [logger (:duct.logger/simple system) output (java.io.StringWriter.)] (with-redefs [*out* output] - (logger/info logger :example/foo) + (logger/debug logger :example/foo) (logger/info logger :example/bar {:x 1}) (Thread/sleep 100)) (is (re-matches - #"(?x)[0-9TZ.:-]+\s:example/foo\n - [0-9TZ.:-]+\s:example/bar\s\{:x\s1\}\n" + #"(?x)[0-9TZ.:-]+\s:debug\s:example/foo\n + [0-9TZ.:-]+\s:info\s:example/bar\s\{:x\s1\}\n" (str output)))) (finally (ig/halt! system))))) @@ -28,14 +28,14 @@ {:appenders [{:type :file, :path temppath}]}})] (try (let [logger (:duct.logger/simple system)] - (logger/info logger :example/foo) + (logger/debug logger :example/foo) (logger/info logger :example/bar {:x 1}) (Thread/sleep 100)) (finally (ig/halt! system))) (is (re-matches - #"(?x)[0-9TZ.:-]+\s:example/foo\n - [0-9TZ.:-]+\s:example/bar\s\{:x\s1\}\n" + #"(?x)[0-9TZ.:-]+\s:debug\s:example/foo\n + [0-9TZ.:-]+\s:info\s:example/bar\s\{:x\s1\}\n" (slurp tempfile))) (.delete tempfile))) @@ -52,7 +52,7 @@ (logger/info logger :example/bar {:x 1}) (Thread/sleep 100)) (is (re-matches - #"[0-9TZ.:-]+\s:example/bar\s\{:x\s1\}\n" + #"[0-9TZ.:-]+\s:info\s:example/bar\s\{:x\s1\}\n" (str output)))) (finally (ig/halt! system))))) @@ -70,14 +70,13 @@ (finally (ig/halt! system))) (is (re-matches - #"[0-9TZ.:-]+\s:example/bar\s\{:x\s1\}\n" + #"[0-9TZ.:-]+\s:info\s:example/bar\s\{:x\s1\}\n" (slurp tempfile))) (.delete tempfile)))) -(deftest stdout-timestamps-test +(deftest stdout-brief-test (let [system (ig/init {:duct.logger/simple - {:appenders [{:type :stdout - :timestamps? false}]}})] + {:appenders [{:type :stdout :brief? true}]}})] (try (let [logger (:duct.logger/simple system) output (java.io.StringWriter.)]