mirror of
https://github.com/taoensso/telemere.git
synced 2026-01-25 23:59:07 +00:00
[nop] Misc housekeeping
This commit is contained in:
parent
1e12a97c01
commit
46e629504b
7 changed files with 68 additions and 64 deletions
|
|
@ -102,7 +102,6 @@
|
||||||
(when-debug (println [:slf4j/allowed? (sig-level level)]))
|
(when-debug (println [:slf4j/allowed? (sig-level level)]))
|
||||||
(impl/signal-allowed?
|
(impl/signal-allowed?
|
||||||
{:location nil
|
{:location nil
|
||||||
:ns nil
|
|
||||||
:kind :log
|
:kind :log
|
||||||
:id :taoensso.telemere/slf4j
|
:id :taoensso.telemere/slf4j
|
||||||
:level (sig-level level)}))
|
:level (sig-level level)}))
|
||||||
|
|
@ -113,7 +112,6 @@
|
||||||
(impl/signal!
|
(impl/signal!
|
||||||
{:allow? true ; Pre-filtered by `allowed?` call
|
{:allow? true ; Pre-filtered by `allowed?` call
|
||||||
:location nil
|
:location nil
|
||||||
:ns nil
|
|
||||||
:kind :log
|
:kind :log
|
||||||
:id :taoensso.telemere/slf4j
|
:id :taoensso.telemere/slf4j
|
||||||
:level (sig-level level)
|
:level (sig-level level)
|
||||||
|
|
|
||||||
|
|
@ -350,8 +350,11 @@
|
||||||
(enc/defaliases handlers/console-handler-fn
|
(enc/defaliases handlers/console-handler-fn
|
||||||
#?(:cljs handlers/raw-console-handler-fn))
|
#?(:cljs handlers/raw-console-handler-fn))
|
||||||
|
|
||||||
(add-handler! :default-console-handler
|
(defonce ^:no-doc __add-default-handlers
|
||||||
(console-handler-fn))
|
(do
|
||||||
|
(add-handler! :default-console-handler
|
||||||
|
(console-handler-fn))
|
||||||
|
nil))
|
||||||
|
|
||||||
;;;; Flow benchmarks
|
;;;; Flow benchmarks
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
(ns ^:no-doc taoensso.telemere.handlers
|
(ns taoensso.telemere.handlers
|
||||||
"Built-in Telemere handlers."
|
"Built-in Telemere handlers."
|
||||||
(:require
|
(:require
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
|
|
@ -22,9 +22,9 @@
|
||||||
Defaults to `*err*` if `utils/error-signal?` is true, and `*out*` otherwise.
|
Defaults to `*err*` if `utils/error-signal?` is true, and `*out*` otherwise.
|
||||||
|
|
||||||
Common formatting alternatives:
|
Common formatting alternatives:
|
||||||
(utils/format-signal-str->fn) ; For human-readable string output (default)
|
(utils/format-signal-str->fn) {<opts>}) ; For human-readable string output (default)
|
||||||
(utils/format-signal->edn-fn) ; For edn output
|
(utils/format-signal->edn-fn) {<opts>}) ; For edn output
|
||||||
(utils/format-signal->json-fn) ; For JSON output
|
(utils/format-signal->json-fn {<opts>}) ; For JSON output
|
||||||
etc.
|
etc.
|
||||||
|
|
||||||
See each format builder for options, etc."
|
See each format builder for options, etc."
|
||||||
|
|
@ -53,9 +53,9 @@
|
||||||
- Writes a formatted signal string to JavaScript console.
|
- Writes a formatted signal string to JavaScript console.
|
||||||
|
|
||||||
Common formatting alternatives:
|
Common formatting alternatives:
|
||||||
(utils/format-signal-str->fn) ; For human-readable string output (default)
|
(utils/format-signal-str->fn) {<opts>}) ; For human-readable string output (default)
|
||||||
(utils/format-signal->edn-fn) ; For edn output
|
(utils/format-signal->edn-fn) {<opts>}) ; For edn output
|
||||||
(utils/format-signal->json-fn) ; For JSON output
|
(utils/format-signal->json-fn {<opts>}) ; For JSON output
|
||||||
etc.
|
etc.
|
||||||
|
|
||||||
See each format builder for options, etc."
|
See each format builder for options, etc."
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@
|
||||||
(form-fn)
|
(form-fn)
|
||||||
(enc/try*
|
(enc/try*
|
||||||
(do [(form-fn) nil])
|
(do [(form-fn) nil])
|
||||||
(catch :any t t [nil t])))]
|
(catch :all t t [nil t])))]
|
||||||
|
|
||||||
[form-result
|
[form-result
|
||||||
(when-let [sigs @sigs_]
|
(when-let [sigs @sigs_]
|
||||||
|
|
@ -513,40 +513,38 @@
|
||||||
|
|
||||||
(if elide?
|
(if elide?
|
||||||
run-form
|
run-form
|
||||||
(let [{:keys [ns line column file]} location
|
(let [{ns-form :ns
|
||||||
{inst-form :inst
|
line-form :line
|
||||||
kind-form :kind
|
column-form :column
|
||||||
id-form :id
|
file-form :file} location
|
||||||
level-form :level} opts
|
|
||||||
|
|
||||||
trace? (get opts :trace? (boolean run-form))
|
{inst-form :inst
|
||||||
uid-form (get opts :uid (when trace? :auto/uuid))
|
level-form :level
|
||||||
ctx-form (get opts :ctx `taoensso.telemere/*ctx*)
|
kind-form :kind
|
||||||
parent-form (get opts :parent (when trace? `taoensso.telemere.impl/*trace-parent*))
|
id-form :id} opts
|
||||||
inst-form (get opts :inst :auto)
|
|
||||||
inst-form (if (= inst-form :auto) `(enc/now-inst*) inst-form)
|
trace? (get opts :trace? (boolean run-form))
|
||||||
uid-form (parse-uid-form uid-form)
|
|
||||||
;; run-fn-form (when run-form `(fn [] ~run-form))
|
inst-form (get opts :inst :auto)
|
||||||
run-result-form
|
inst-form (if (= inst-form :auto) `(enc/now-inst*) inst-form)
|
||||||
(when run-form
|
|
||||||
`(let [~'__t0 (enc/now-nano*)]
|
uid-form (get opts :uid (when trace? :auto/uuid))
|
||||||
(with-tracing ~trace? ~'__id ~'__uid
|
uid-form (parse-uid-form uid-form)
|
||||||
(enc/try*
|
|
||||||
(do (RunResult. ~run-form nil (- (enc/now-nano*) ~'__t0)))
|
|
||||||
(catch :any ~'__t (RunResult. nil ~'__t (- (enc/now-nano*) ~'__t0)))))))
|
|
||||||
|
|
||||||
signal-form
|
signal-form
|
||||||
(let [{do-form :do
|
(let [{do-form :do
|
||||||
let-form :let
|
let-form :let
|
||||||
data-form :data
|
|
||||||
msg-form :msg
|
msg-form :msg
|
||||||
|
data-form :data
|
||||||
error-form :error
|
error-form :error
|
||||||
sample-rate-form :sample-rate}
|
sample-rate-form :sample-rate} opts
|
||||||
opts
|
|
||||||
|
|
||||||
let-form (or let-form '[])
|
let-form (or let-form '[])
|
||||||
msg-form (parse-msg-form msg-form)
|
msg-form (parse-msg-form msg-form)
|
||||||
|
|
||||||
|
ctx-form (get opts :ctx `taoensso.telemere/*ctx*)
|
||||||
|
parent-form (get opts :parent (when trace? `taoensso.telemere.impl/*trace-parent*))
|
||||||
|
|
||||||
extra-kvs-form
|
extra-kvs-form
|
||||||
(not-empty
|
(not-empty
|
||||||
(dissoc opts
|
(dissoc opts
|
||||||
|
|
@ -568,42 +566,52 @@
|
||||||
~do-form
|
~do-form
|
||||||
(let ~let-form ; Allow to throw during `signal-value_` deref
|
(let ~let-form ; Allow to throw during `signal-value_` deref
|
||||||
(new-signal ~'__inst ~'__uid
|
(new-signal ~'__inst ~'__uid
|
||||||
~location ~ns ~line ~column ~file,
|
~location ~'__ns ~line-form ~column-form ~file-form,
|
||||||
~sample-rate-form, ~kind-form ~'__id ~level-form, ~ctx-form ~parent-form,
|
~sample-rate-form, ~'__kind ~'__id ~'__level, ~ctx-form ~parent-form,
|
||||||
~extra-kvs-form ~data-form ~msg-form,
|
~extra-kvs-form ~data-form ~msg-form,
|
||||||
'~run-form ~'__run-result ~error-form))))]
|
'~run-form ~'__run-result ~error-form))))
|
||||||
|
|
||||||
#_ ; Sacrifice some perf to de-dupe (possibly large) `run-form`
|
run-fn-form (when run-form `(fn [] (~run-form)))]
|
||||||
(let [~'__run-fn ~run-fn-form]
|
|
||||||
(if-not ~allow?
|
;; Could avoid double `run-form` expansion with a fn wrap (>0 cost)
|
||||||
(when ~'__run-fn (~'__run-fn))
|
;; `(let [~'run-fn-form ~run-fn-form]
|
||||||
(let [])))
|
;; (if-not ~allow?
|
||||||
|
;; (run-fn-form)
|
||||||
|
;; (let [...])))
|
||||||
|
|
||||||
`(enc/if-not ~allow? ; Allow to throw at call
|
`(enc/if-not ~allow? ; Allow to throw at call
|
||||||
~run-form
|
~run-form
|
||||||
(let [~'__inst ~inst-form ; Allow to throw at call
|
(let [~'__inst ~inst-form ; Allow to throw at call
|
||||||
~'__id ~id-form ; ''
|
~'__level ~level-form ; ''
|
||||||
~'__uid ~uid-form ; ''
|
~'__kind ~kind-form ; ''
|
||||||
~'__run-result ~run-result-form ; Non-throwing (traps)
|
~'__id ~id-form ; ''
|
||||||
|
~'__uid ~uid-form ; ''
|
||||||
|
~'__ns ~ns-form ; ''
|
||||||
|
|
||||||
~'__call-middleware
|
~'__call-middleware ~(get opts :middleware `taoensso.telemere/*middleware*)
|
||||||
~(get opts :middleware
|
~'__run-result ; Non-throwing (traps)
|
||||||
`taoensso.telemere/*middleware*)]
|
~(when run-form
|
||||||
|
`(let [~'__t0 (enc/now-nano*)]
|
||||||
|
(with-tracing ~trace? ~'__id ~'__uid
|
||||||
|
(enc/try*
|
||||||
|
(do (RunResult. ~run-form nil (- (enc/now-nano*) ~'__t0)))
|
||||||
|
(catch :all ~'__t (RunResult. nil ~'__t (- (enc/now-nano*) ~'__t0)))))))
|
||||||
|
|
||||||
(dispatch-signal!
|
~'__signal_
|
||||||
(WrappedSignal. ; Same internal value sent (conditionally) to all handlers
|
|
||||||
~ns ~kind-form ~'__id ~level-form
|
|
||||||
|
|
||||||
;; Cache shared by all handlers. Covers signal `:let` eval, signal construction,
|
|
||||||
;; middleware (possibly expensive), etc.
|
|
||||||
(delay
|
(delay
|
||||||
|
;; Cache shared by all handlers. Covers signal `:let` eval, signal construction,
|
||||||
|
;; middleware (possibly expensive), etc.
|
||||||
|
|
||||||
;; The unwrapped signal value actually visible to users/handler-fns, realized only
|
;; The unwrapped signal value actually visible to users/handler-fns, realized only
|
||||||
;; AFTER handler filtering. Allowed to throw on deref (handler will catch).
|
;; AFTER handler filtering. Allowed to throw on deref (handler will catch).
|
||||||
(let [~'__signal ~signal-form] ; Can throw
|
(let [~'__signal ~signal-form] ; Can throw
|
||||||
(if ~'__call-middleware
|
(if ~'__call-middleware
|
||||||
((sigs/get-middleware-fn ~'__call-middleware) ~'__signal) ; Can throw
|
((sigs/get-middleware-fn ~'__call-middleware) ~'__signal) ; Can throw
|
||||||
(do ~'__signal))))))
|
(do ~'__signal))))]
|
||||||
|
|
||||||
|
;; Unconditionally send same wrapped signal to all handlers.
|
||||||
|
;; Each handler will then use wrapper for filtering, unwrapping allowed signals.
|
||||||
|
(dispatch-signal! (WrappedSignal. ~'__ns ~'__kind ~'__id ~'__level ~'__signal_))
|
||||||
|
|
||||||
(if ~'__run-result
|
(if ~'__run-result
|
||||||
(do (~'__run-result))
|
(do (~'__run-result))
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
(ns ^:no-doc taoensso.telemere.streams
|
(ns ^:no-doc taoensso.telemere.streams
|
||||||
"Private ns, implementation detail.
|
"Private ns, implementation detail.
|
||||||
Interop support: standard stream/s -> Telemere."
|
Interop support: standard stream/s -> Telemere."
|
||||||
|
|
||||||
(:refer-clojure :exclude [binding])
|
(:refer-clojure :exclude [binding])
|
||||||
(:require
|
(:require
|
||||||
[taoensso.encore :as enc :refer [binding have have?]]
|
[taoensso.encore :as enc :refer [binding have have?]]
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@
|
||||||
(when-debug (println [:tools.logger/enabled? logger-ns level]))
|
(when-debug (println [:tools.logger/enabled? logger-ns level]))
|
||||||
(impl/signal-allowed?
|
(impl/signal-allowed?
|
||||||
{:location nil
|
{:location nil
|
||||||
:ns nil
|
|
||||||
:kind :log
|
:kind :log
|
||||||
:id :taoensso.telemere/tools-logging
|
:id :taoensso.telemere/tools-logging
|
||||||
:level level}))
|
:level level}))
|
||||||
|
|
@ -25,11 +24,9 @@
|
||||||
(impl/signal!
|
(impl/signal!
|
||||||
{:allow? true ; Pre-filtered by `enabled?` call
|
{:allow? true ; Pre-filtered by `enabled?` call
|
||||||
:location nil
|
:location nil
|
||||||
:ns nil
|
|
||||||
:kind :log
|
:kind :log
|
||||||
:id :taoensso.telemere/tools-logging
|
:id :taoensso.telemere/tools-logging
|
||||||
:level level
|
:level level
|
||||||
:inst :auto
|
|
||||||
:error throwable
|
:error throwable
|
||||||
:msg message})
|
:msg message})
|
||||||
nil))
|
nil))
|
||||||
|
|
@ -42,7 +39,6 @@
|
||||||
(defn ^:public tools-logging->telemere!
|
(defn ^:public tools-logging->telemere!
|
||||||
"Configures `clojure.tools.logging` to use Telemere as its logging implementation."
|
"Configures `clojure.tools.logging` to use Telemere as its logging implementation."
|
||||||
[]
|
[]
|
||||||
|
|
||||||
(impl/signal!
|
(impl/signal!
|
||||||
{:kind :event
|
{:kind :event
|
||||||
:level :info
|
:level :info
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
(ns ^:no-doc taoensso.telemere.utils
|
(ns taoensso.telemere.utils
|
||||||
"Misc utils useful for Telemere handlers, middleware, etc."
|
"Misc utils useful for Telemere handlers, middleware, etc."
|
||||||
(:refer-clojure :exclude [newline])
|
(:refer-clojure :exclude [newline])
|
||||||
(:require
|
(:require
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
`:error` -> `js/console.error`, etc.
|
`:error` -> `js/console.error`, etc.
|
||||||
|
|
||||||
Defaults to `js.console.log` for unmatched signal levels.
|
Defaults to `js.console.log` for unmatched signal levels.
|
||||||
NB: assumes that `js/console` exists, handler builders should check first!"
|
NB: assumes that `js/console` exists, handler constructors should check first!"
|
||||||
[level]
|
[level]
|
||||||
(case level
|
(case level
|
||||||
:trace js/console.trace
|
:trace js/console.trace
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue