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