Compare commits
4 commits
master
...
reduce-blo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6233eb5abf | ||
|
|
c9ed8ce24f | ||
|
|
ff83b69990 | ||
|
|
2a36d76e74 |
3 changed files with 14 additions and 50 deletions
|
|
@ -3,8 +3,7 @@
|
||||||
[clojure.tools.logging.impl :as impl]
|
[clojure.tools.logging.impl :as impl]
|
||||||
[sci.core :as sci]
|
[sci.core :as sci]
|
||||||
[taoensso.encore :as enc :refer [have]]
|
[taoensso.encore :as enc :refer [have]]
|
||||||
[taoensso.timbre :as timbre]
|
[taoensso.timbre :as timbre]))
|
||||||
[taoensso.timbre.appenders.core :as appenders]))
|
|
||||||
|
|
||||||
;;;; timbre
|
;;;; timbre
|
||||||
|
|
||||||
|
|
@ -60,44 +59,7 @@
|
||||||
{}
|
{}
|
||||||
(select-keys (ns-publics ns) ks)))
|
(select-keys (ns-publics ns) ks)))
|
||||||
|
|
||||||
(def atomic-println @#'appenders/atomic-println)
|
(def config (sci/new-dynamic-var '*config* timbre/*config* {:ns tns}))
|
||||||
|
|
||||||
(defn println-appender
|
|
||||||
"Returns a simple `println` appender for Clojure/Script.
|
|
||||||
Use with ClojureScript requires that `cljs.core/*print-fn*` be set.
|
|
||||||
:stream (clj only) - e/o #{:auto :*out* :*err* :std-err :std-out <io-stream>}."
|
|
||||||
|
|
||||||
;; Unfortunately no easy way to check if *print-fn* is set. Metadata on the
|
|
||||||
;; default throwing fn would be nice...
|
|
||||||
|
|
||||||
[& [{:keys [stream] :or {stream :auto}}]]
|
|
||||||
(let [stream
|
|
||||||
(case stream
|
|
||||||
:std-err timbre/default-err
|
|
||||||
:std-out timbre/default-out
|
|
||||||
stream)]
|
|
||||||
{:enabled? true
|
|
||||||
:async? false
|
|
||||||
:min-level nil
|
|
||||||
:rate-limit nil
|
|
||||||
:output-fn :inherit
|
|
||||||
:fn
|
|
||||||
(fn [data]
|
|
||||||
(let [{:keys [output_]} data
|
|
||||||
stream
|
|
||||||
(case stream
|
|
||||||
:auto (if (:error-level? data) @sci/err @sci/out)
|
|
||||||
:*out* @sci/out
|
|
||||||
:*err* @sci/err
|
|
||||||
stream)]
|
|
||||||
(binding [*out* stream]
|
|
||||||
(atomic-println (force output_)))))}))
|
|
||||||
|
|
||||||
(def default-config (assoc-in timbre/*config* [:appenders :println]
|
|
||||||
(println-appender {:stream :auto})))
|
|
||||||
|
|
||||||
(def config (sci/new-dynamic-var '*config* default-config
|
|
||||||
{:ns tns}))
|
|
||||||
|
|
||||||
(defn swap-config! [f & args]
|
(defn swap-config! [f & args]
|
||||||
(apply sci/alter-var-root config f args))
|
(apply sci/alter-var-root config f args))
|
||||||
|
|
@ -105,16 +67,17 @@
|
||||||
(defn set-level! [level] (swap-config! (fn [m] (assoc m :min-level level))))
|
(defn set-level! [level] (swap-config! (fn [m] (assoc m :min-level level))))
|
||||||
|
|
||||||
(def timbre-namespace
|
(def timbre-namespace
|
||||||
(assoc (make-ns 'taoensso.timbre tns ['trace 'tracef 'debug 'debugf
|
(assoc (make-ns 'taoensso.timbre tns [] #_['trace 'tracef 'debug 'debugf
|
||||||
'info 'infof 'warn 'warnf
|
'info 'infof 'warn 'warnf
|
||||||
'error 'errorf
|
'error 'errorf
|
||||||
'-log! 'with-level
|
'-log! 'with-level
|
||||||
'spit-appender])
|
'println-appender 'spit-appender])
|
||||||
'log! (sci/copy-var log! tns)
|
'log! (sci/copy-var log! tns)
|
||||||
'*config* config
|
#_#_'*config* config
|
||||||
'swap-config! (sci/copy-var swap-config! tns)
|
#_#_'swap-config! (sci/copy-var swap-config! tns)
|
||||||
'set-level! (sci/copy-var set-level! tns)
|
#_#_'set-level! (sci/copy-var set-level! tns)))
|
||||||
'println-appender (sci/copy-var println-appender tns)))
|
|
||||||
|
(prn timbre-namespace)
|
||||||
|
|
||||||
;;;; clojure.tools.logging
|
;;;; clojure.tools.logging
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
[babashka.impl.features :as features]
|
[babashka.impl.features :as features]
|
||||||
[babashka.impl.fs :refer [fs-namespace]]
|
[babashka.impl.fs :refer [fs-namespace]]
|
||||||
[babashka.impl.logging :refer [timbre-namespace tools-logging-namespace
|
[babashka.impl.logging :refer [timbre-namespace tools-logging-namespace
|
||||||
tools-logging-impl-namespace]]
|
tools-logging-impl-namespace]]
|
||||||
[babashka.impl.pods :as pods]
|
[babashka.impl.pods :as pods]
|
||||||
[babashka.impl.pprint :refer [pprint-namespace]]
|
[babashka.impl.pprint :refer [pprint-namespace]]
|
||||||
[babashka.impl.process :refer [process-namespace]]
|
[babashka.impl.process :refer [process-namespace]]
|
||||||
|
|
@ -355,8 +355,9 @@ Use bb run --help to show this help output.
|
||||||
'babashka.deps deps-namespace
|
'babashka.deps deps-namespace
|
||||||
'babashka.tasks tasks-namespace
|
'babashka.tasks tasks-namespace
|
||||||
'taoensso.timbre timbre-namespace
|
'taoensso.timbre timbre-namespace
|
||||||
'clojure.tools.logging tools-logging-namespace
|
;; 'clojure.tools.logging tools-logging-namespace
|
||||||
'clojure.tools.logging.impl tools-logging-impl-namespace}
|
;; 'clojure.tools.logging.impl tools-logging-impl-namespace
|
||||||
|
}
|
||||||
features/xml? (assoc 'clojure.data.xml @(resolve 'babashka.impl.xml/xml-namespace))
|
features/xml? (assoc 'clojure.data.xml @(resolve 'babashka.impl.xml/xml-namespace))
|
||||||
features/yaml? (assoc 'clj-yaml.core @(resolve 'babashka.impl.yaml/yaml-namespace)
|
features/yaml? (assoc 'clj-yaml.core @(resolve 'babashka.impl.yaml/yaml-namespace)
|
||||||
'flatland.ordered.map @(resolve 'babashka.impl.ordered/ordered-map-ns))
|
'flatland.ordered.map @(resolve 'babashka.impl.ordered/ordered-map-ns))
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
(timbre/swap-config! assoc-in [:appenders :spit] (timbre/spit-appender {:fname "/tmp/timbre.log"}))
|
(timbre/swap-config! assoc-in [:appenders :spit] (timbre/spit-appender {:fname "/tmp/timbre.log"}))
|
||||||
(log/infof "Hello %s" 123)))
|
(log/infof "Hello %s" 123)))
|
||||||
|
|
||||||
(deftest logging-test
|
#_(deftest logging-test
|
||||||
(let [res (tu/bb nil (pr-str program))]
|
(let [res (tu/bb nil (pr-str program))]
|
||||||
(is (= 17 (count (re-seq #"\[dude:.\]" res))))
|
(is (= 17 (count (re-seq #"\[dude:.\]" res))))
|
||||||
(is (= 6 (count (re-seq #"DEBUG" res))))
|
(is (= 6 (count (re-seq #"DEBUG" res))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue