71 lines
2.5 KiB
Clojure
71 lines
2.5 KiB
Clojure
(ns babashka.logging-test
|
|
(:require [babashka.fs :as fs]
|
|
[babashka.test-utils :as tu]
|
|
[clojure.edn :as edn]
|
|
[clojure.test :as t :refer [deftest is testing]]
|
|
[clojure.string :as str]))
|
|
|
|
(def program
|
|
'(do
|
|
(ns dude)
|
|
(require '[clojure.tools.logging :as log])
|
|
(require '[taoensso.timbre :as timbre])
|
|
|
|
(defn test-fn
|
|
[]
|
|
(log/debug "test ctl debug level")
|
|
(log/info "test ctl info")
|
|
(timbre/debug "test timbre debug level")
|
|
(timbre/info "test timbre info"))
|
|
|
|
(println "before setting log level")
|
|
(test-fn)
|
|
|
|
(alter-var-root #'timbre/*config* #(assoc %1 :min-level :info))
|
|
|
|
(println "after setting log level to :info")
|
|
(test-fn)
|
|
|
|
(println "with-level :debug")
|
|
(timbre/with-level :debug
|
|
(test-fn))
|
|
|
|
(timbre/set-level! :debug)
|
|
(println "after setting log level to :debug")
|
|
(test-fn)
|
|
|
|
(timbre/infof "Hello %s" 123)
|
|
(log/infof "Hello %s" 123)
|
|
|
|
(timbre/swap-config! assoc-in [:appenders :spit] (timbre/spit-appender {:fname "/tmp/timbre.log"}))
|
|
(log/infof "Hello %s" 123)))
|
|
|
|
(deftest logging-test
|
|
(let [res (tu/bb nil (pr-str program))]
|
|
(is (= 17 (count (re-seq #"\[dude:.\]" res))))
|
|
(is (= 6 (count (re-seq #"DEBUG" res))))
|
|
(is (= 11 (count (re-seq #"INFO" res)))))
|
|
(testing "println appender works with with-out-str"
|
|
(let [res (tu/bb
|
|
nil
|
|
(pr-str '(do
|
|
(require '[taoensso.timbre :as timbre]
|
|
'[clojure.string :as str])
|
|
(str/includes? (with-out-str (timbre/info "hello")) "hello"))))
|
|
res (edn/read-string res)]
|
|
(is (true? res))))
|
|
(testing "spit-appender"
|
|
(let [temp-file (-> (fs/create-temp-dir)
|
|
(fs/file "log.txt"))
|
|
program (pr-str '(do
|
|
(require '[taoensso.timbre :as timbre]
|
|
'[clojure.string :as str])
|
|
(def appender (timbre/spit-appender {:fname :fname-placeholder}))
|
|
(timbre/swap-config! assoc-in [:appenders :spit] appender)
|
|
(str/includes? (with-out-str (timbre/info "hello")) "hello")))
|
|
program (str/replace program ":fname-placeholder" (pr-str (.getPath temp-file)))
|
|
_ (tu/bb
|
|
nil
|
|
program)
|
|
res (slurp temp-file)]
|
|
(is (str/includes? res "hello")))))
|