From 15577ab1065a09bf278847a6443fc4813cfc16fa Mon Sep 17 00:00:00 2001 From: Peter Taoussanis Date: Thu, 4 Apr 2024 16:12:44 +0200 Subject: [PATCH] [nop] Handler housekeeping --- src/taoensso/telemere.cljc | 12 +++--- src/taoensso/telemere/handlers.cljc | 60 ++++++++++++++++------------- src/taoensso/telemere/utils.cljc | 12 +++--- 3 files changed, 45 insertions(+), 39 deletions(-) diff --git a/src/taoensso/telemere.cljc b/src/taoensso/telemere.cljc index 59de39b..abca0ed 100644 --- a/src/taoensso/telemere.cljc +++ b/src/taoensso/telemere.cljc @@ -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))))) ;;;; diff --git a/src/taoensso/telemere/handlers.cljc b/src/taoensso/telemere/handlers.cljc index c1a48de..42e3ede 100644 --- a/src/taoensso/telemere/handlers.cljc +++ b/src/taoensso/telemere/handlers.cljc @@ -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. ." - ([] (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))))))))) diff --git a/src/taoensso/telemere/utils.cljc b/src/taoensso/telemere/utils.cljc index f97db8f..dc3b2ca 100644 --- a/src/taoensso/telemere/utils.cljc +++ b/src/taoensso/telemere/utils.cljc @@ -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