Skip to content

Commit

Permalink
Add log level to log output
Browse files Browse the repository at this point in the history
Change :timestamps? option to :brief?.
  • Loading branch information
weavejester committed Oct 25, 2024
1 parent 4feef82 commit 3acf867
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 17 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
12 changes: 7 additions & 5 deletions src/duct/logger/simple.clj
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)))))

Expand Down
21 changes: 10 additions & 11 deletions test/duct/logger/simple_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -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)))))
Expand All @@ -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)))

Expand All @@ -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)))))
Expand All @@ -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.)]
Expand Down

0 comments on commit 3acf867

Please sign in to comment.