mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-30 22:48:25 +00:00
[nop] Handler housekeeping
This commit is contained in:
parent
97ddc93775
commit
15577ab106
3 changed files with 45 additions and 39 deletions
|
|
@ -373,13 +373,13 @@
|
|||
|
||||
;;;; Handlers
|
||||
|
||||
(enc/defaliases handlers/console-handler-fn
|
||||
#?(:cljs handlers/raw-console-handler-fn))
|
||||
(enc/defaliases handlers/console-handler
|
||||
#?(:cljs handlers/raw-console-handler))
|
||||
|
||||
(defonce ^:no-doc __add-default-handlers
|
||||
(do
|
||||
(add-handler! :default-console-handler
|
||||
(console-handler-fn))
|
||||
(console-handler))
|
||||
nil))
|
||||
|
||||
;;;; Flow benchmarks
|
||||
|
|
@ -416,7 +416,7 @@
|
|||
;;;;
|
||||
|
||||
(comment
|
||||
(with-handler :hid1 (handlers/console-handler-fn) {} (log! "Message"))
|
||||
(with-handler :hid1 (handlers/console-handler) {} (log! "Message"))
|
||||
|
||||
(let [sig
|
||||
(with-signal
|
||||
|
|
@ -426,7 +426,7 @@
|
|||
(ex-info "Ex2" {:b :B}
|
||||
(ex-info "Ex1" {:a :A}))}))]
|
||||
|
||||
(do ((handlers/console-handler-fn) sig))
|
||||
#?(:cljs ((handlers/raw-console-handler-fn) sig))))
|
||||
#?(:cljs (let [hf (handlers/raw-console-handler)] (hf sig) (hf)))
|
||||
(do (let [hf (handlers/console-handler)] (hf sig) (hf)))))
|
||||
|
||||
;;;;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
(:api (enc/interns-overview)))
|
||||
|
||||
#?(:clj
|
||||
(defn console-handler-fn
|
||||
(defn console-handler
|
||||
"Experimental, subject to change.
|
||||
|
||||
Returns a (fn handler [signal]) that:
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
See each format builder for options, etc."
|
||||
|
||||
([] (console-handler-fn nil))
|
||||
([] (console-handler nil))
|
||||
([{:keys [format-signal-fn stream]
|
||||
:or {format-signal-fn (utils/format-signal->str-fn)}}]
|
||||
|
||||
|
|
@ -37,15 +37,17 @@
|
|||
error-signal? utils/error-signal?
|
||||
nl utils/newline]
|
||||
|
||||
(fn console-handler [signal]
|
||||
(let [^java.io.Writer stream
|
||||
(or stream (if (error-signal? signal) *err* *out*))]
|
||||
(when-let [output (format-signal-fn signal)]
|
||||
(.write stream (str output nl))
|
||||
(.flush stream)))))))
|
||||
(fn a-console-handler
|
||||
([]) ; Shut down (no-op)
|
||||
([signal]
|
||||
(let [^java.io.Writer stream
|
||||
(or stream (if (error-signal? signal) *err* *out*))]
|
||||
(when-let [output (format-signal-fn signal)]
|
||||
(.write stream (str output nl))
|
||||
(.flush stream))))))))
|
||||
|
||||
:cljs
|
||||
(defn console-handler-fn
|
||||
(defn console-handler
|
||||
"Experimental, subject to change.
|
||||
|
||||
If `js/console` exists, returns a (fn handler [signal]) that:
|
||||
|
|
@ -60,7 +62,7 @@
|
|||
|
||||
See each format builder for options, etc."
|
||||
|
||||
([] (console-handler-fn nil))
|
||||
([] (console-handler nil))
|
||||
([{:keys [format-signal-fn]
|
||||
:or {format-signal-fn (utils/format-signal->str-fn)}}]
|
||||
|
||||
|
|
@ -68,10 +70,12 @@
|
|||
(let [js-console-logger utils/js-console-logger
|
||||
nl utils/newline]
|
||||
|
||||
(fn console-handler [signal]
|
||||
(when-let [output (format-signal-fn signal)]
|
||||
(let [logger (js-console-logger (get signal :level))]
|
||||
(.call logger logger (str output nl))))))))))
|
||||
(fn a-console-handler
|
||||
([]) ; Shut down (no-op)
|
||||
([signal]
|
||||
(when-let [output (format-signal-fn signal)]
|
||||
(let [logger (js-console-logger (get signal :level))]
|
||||
(.call logger logger (str output nl)))))))))))
|
||||
|
||||
#?(:cljs
|
||||
(defn- logger-fn [logger]
|
||||
|
|
@ -83,7 +87,7 @@
|
|||
([x1 x2 x3 & more] (apply logger x1 x2 x3 more)))))
|
||||
|
||||
#?(:cljs
|
||||
(defn raw-console-handler-fn
|
||||
(defn raw-console-handler
|
||||
"Experimental, subject to change.
|
||||
|
||||
If `js/console` exists, returns a (fn handler [signal]) that:
|
||||
|
|
@ -93,7 +97,7 @@
|
|||
Intended for use with browser formatting tools like `binaryage/devtools`,
|
||||
Ref. <https://github.com/binaryage/cljs-devtools>."
|
||||
|
||||
([] (raw-console-handler-fn nil))
|
||||
([] (raw-console-handler nil))
|
||||
([{:keys [format-signal-prelude-fn format-nsecs-fn] :as opts
|
||||
:or
|
||||
{format-signal-prelude-fn (utils/format-signal-prelude-fn) ; (fn [signal])
|
||||
|
|
@ -102,21 +106,23 @@
|
|||
|
||||
(when (and (exists? js/console) (exists? js/console.group))
|
||||
(let [js-console-logger utils/js-console-logger
|
||||
handle-signal-content-fn ; (fn [signal hf vf]
|
||||
(utils/handle-signal-content-fn
|
||||
signal-content-handler ; (fn [signal hf vf]
|
||||
(utils/signal-content-handler
|
||||
{:format-nsecs-fn format-nsecs-fn
|
||||
:format-error-fn nil
|
||||
:raw-error? true})]
|
||||
|
||||
(fn raw-console-handler [signal]
|
||||
(let [{:keys [level error]} signal
|
||||
logger (js-console-logger level)]
|
||||
(fn a-raw-console-handler
|
||||
([]) ; Shut down (no-op)
|
||||
([signal]
|
||||
(let [{:keys [level error]} signal
|
||||
logger (js-console-logger level)]
|
||||
|
||||
;; Unfortunately groups have no level
|
||||
(.group js/console (format-signal-prelude-fn signal))
|
||||
(handle-signal-content-fn signal (logger-fn logger) identity)
|
||||
;; Unfortunately groups have no level
|
||||
(.group js/console (format-signal-prelude-fn signal))
|
||||
(signal-content-handler signal (logger-fn logger) identity)
|
||||
|
||||
(when-let [stack (and error (.-stack (enc/ex-root error)))]
|
||||
(.call logger logger stack))
|
||||
(when-let [stack (and error (.-stack (enc/ex-root error)))]
|
||||
(.call logger logger stack))
|
||||
|
||||
(.groupEnd js/console))))))))
|
||||
(.groupEnd js/console)))))))))
|
||||
|
|
|
|||
|
|
@ -236,11 +236,11 @@
|
|||
|
||||
(comment ((format-signal-prelude-fn) (tel/with-signal (tel/event! ::ev-id))))
|
||||
|
||||
(defn ^:no-doc handle-signal-content-fn
|
||||
(defn ^:no-doc signal-content-handler
|
||||
"Private, don't use.
|
||||
Returns a (fn handle [signal handle-fn value-fn]) for internal use.
|
||||
Content equivalent to `format-signal-prelude-fn`."
|
||||
([] (handle-signal-content-fn nil))
|
||||
([] (signal-content-handler nil))
|
||||
([{:keys [format-nsecs-fn format-error-fn raw-error?]
|
||||
:or
|
||||
{format-nsecs-fn (format-nsecs-fn) ; (fn [nanosecs])
|
||||
|
|
@ -250,7 +250,7 @@
|
|||
(let [err-start (str newline "<<< error <<<" newline)
|
||||
err-stop (str newline ">>> error >>>")]
|
||||
|
||||
(fn handle-signal-content [signal hf vf]
|
||||
(fn a-signal-content-handler [signal hf vf]
|
||||
(let [{:keys [uid parent data extra-kvs ctx sample-rate]} signal]
|
||||
(when sample-rate (hf "sample: " (vf sample-rate)))
|
||||
(when uid (hf " uid: " (vf uid)))
|
||||
|
|
@ -338,8 +338,8 @@
|
|||
format-error-fn (format-error-fn) ; (fn [error])
|
||||
}}]
|
||||
|
||||
(let [handle-signal-content-fn ; (fn [signal hf vf]
|
||||
(handle-signal-content-fn
|
||||
(let [signal-content-handler ; (fn [signal hf vf]
|
||||
(signal-content-handler
|
||||
{:format-nsecs-fn format-nsecs-fn
|
||||
:format-error-fn format-error-fn})]
|
||||
|
||||
|
|
@ -349,7 +349,7 @@
|
|||
s++ (partial enc/sb-append sb (str newline " "))]
|
||||
|
||||
(when-let [ff format-signal-prelude-fn] (s+ (ff signal))) ; Prelude
|
||||
(handle-signal-content-fn signal s++ enc/pr-edn) ; Content
|
||||
(signal-content-handler signal s++ enc/pr-edn) ; Content
|
||||
(str sb))))))
|
||||
|
||||
(comment
|
||||
|
|
|
|||
Loading…
Reference in a new issue