<<ahref="https://www.taoensso.com/telemere">https://www.taoensso.com/telemere</a>></pre></div><divclass="public anchor"id="var-*ctx*"><h3>*ctx*</h3><h4class="dynamic">dynamic</h4><h4class="lang"><ahref="taoensso.telemere.html#var-*ctx*">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Dynamic context: arbitrary user-level state attached as `:ctx` to all signals.
Value may be any type, but is usually nil or a map.
Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.
Modify root (base) value using `set-ctx!`.
Default root (base) value is `default-ctx`.
Note that as with all dynamic Clojure vars, "binding conveyance" applies
when using futures, agents, etc.
Tips:
- Value may be (or may contain) an atom if you want mutable semantics
- Value may be of form {<scope-id><data>} for custom scoping, etc.</pre></div></div><divclass="public anchor"id="var-*middleware*"><h3>*middleware*</h3><h4class="dynamic">dynamic</h4><h4class="lang"><ahref="taoensso.telemere.html#var-*middleware*">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Optional vector of unary middleware fns to apply (sequentially/left-to-right)
to each signal before passing it to handlers. If any middleware fn returns nil,
aborts immediately without calling handlers.
Useful for transforming each signal before handling.
Re/bind dynamic value using `with-middleware`, `binding`.
Modify root (base) value using `set-middleware!`.</pre></div></div><divclass="public anchor"id="var-add-handler.21"><h3>add-handler!</h3><h4class="lang"><ahref="taoensso.telemere.html#var-add-handler.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(add-handler! handler-id handler-fn)</code><code>(add-handler! handler-id handler-fn dispatch-opts)</code></div><divclass="doc"><preclass="plaintext">Registers given signal handler and returns
{<handler-id> {:keys [dispatch-opts handler-fn]}} for all signal handlers
otherwise calls will be suppressed before reaching handlers.</pre></div></div><divclass="public anchor"id="var-catch-.3Eerror.21"><h3>catch->error!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-catch-.3Eerror.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(catch->error! form)</code><code>(catch->error! id form)</code><code>(catch->error! {:as opts, :keys [rethrow? catch-val elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]} form)</code></div><divclass="doc"><preclass="plaintext">Unconditionally executes given form and-
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-chance"><h3>chance</h3><h4class="lang"><ahref="taoensso.telemere.html#var-chance">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(chance prob)</code></div><divclass="doc"><preclass="plaintext">Returns true with given probability ∈ ℝ[0,1].
</pre></div></div><divclass="public anchor"id="var-default-ctx"><h3>default-ctx</h3><h4class="lang"><ahref="taoensso.telemere.html#var-default-ctx">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Default root (base) value of `*ctx*` var.
See `get-env` for details.</pre></div></div><divclass="public anchor"id="var-error.21"><h3>error!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-error.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(error! error)</code><code>(error! id error)</code><code>(error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]} error)</code></div><divclass="doc"><preclass="plaintext">"Error" signal creator, emphasizing error + id.
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-error-signal.3F"><h3>error-signal?</h3><h4class="lang"><ahref="taoensso.telemere.html#var-error-signal.3F">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(error-signal? signal)</code></div><divclass="doc"><preclass="plaintext">Experimental, subject to change.
Returns true iff given signal has an `:error` value, or a `:kind` or `:level`
that indicates that it's an error.</pre></div></div><divclass="public anchor"id="var-event.21"><h3>event!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-event.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(event! id)</code><code>(event! id level)</code><code>(event! id {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]})</code></div><divclass="doc"><preclass="plaintext">"Event" signal creator, emphasizing id + level.
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-get-env"><h3>get-env</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-get-env">clj</a></h4><h4class="lang current">cljs</h4><h4class="added">added in Encore v3.75.0 (2024-01-29)</h4><divclass="usage"><code>(get-env {:keys [as default return], :or {as :str, return :value}} spec)</code></div><divclass="doc"><preclass="plaintext">Flexible cross-platform util for embedding a config value during
TIP!: Use the {:return :explain} option in tests or at the REPL to verify/inspect
resulting config value, config source, and specific search order of prop/env/res ids.</pre></div></div><divclass="public anchor"id="var-get-filters"><h3>get-filters</h3><h4class="lang"><ahref="taoensso.telemere.html#var-get-filters">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(get-filters)</code></div><divclass="doc"><preclass="plaintext">Returns current ?{:keys [compile-time runtime]} filter config.
</pre></div></div><divclass="public anchor"id="var-get-handlers"><h3>get-handlers</h3><h4class="lang"><ahref="taoensso.telemere.html#var-get-handlers">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(get-handlers)</code></div><divclass="doc"><preclass="plaintext">Returns ?{<handler-id> {:keys [dispatch-opts handler-fn]}} for all
registered signal handlers.</pre></div></div><divclass="public anchor"id="var-get-min-level"><h3>get-min-level</h3><h4class="lang"><ahref="taoensso.telemere.html#var-get-min-level">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(get-min-level)</code><code>(get-min-level kind)</code><code>(get-min-level kind ns)</code></div><divclass="doc"><preclass="plaintext">Returns current ?{:keys [compile-time runtime]} minimum levels.
If `js/console` exists, returns a (fn handler [signal]) that:
- Takes a Telemere signal.
- Writes raw signal data to JavaScript console.
Intended for use with browser formatting tools like `binaryage/devtools`,
Ref. <<ahref="https://github.com/binaryage/cljs-devtools">https://github.com/binaryage/cljs-devtools</a>>.</pre></div></div><divclass="public anchor"id="var-help.3Afilters"><h3>help:filters</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Afilters">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Your filter config determines which signal calls will be allowed.
improve these docs!</pre></div></div><divclass="public anchor"id="var-help.3Asignal-content"><h3>help:signal-content</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Asignal-content">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Signals are maps with {:keys [inst id ns level data msg_ ...]},
though they can be modified by signal and/or handler middleware.
Default signal keys:
`:schema` ------ Int version of signal schema (current: 1)
`:inst` -------- Platform instant [1] when signal was created
[2] `java.lang.Throwable` or `js/Error`</pre></div></div><divclass="public anchor"id="var-help.3Asignal-creators"><h3>help:signal-creators</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Asignal-creators">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Call a Telemere signal creator to conditionally create a signal at that callsite.
When filtering conditions are met [4], the call creates a Telemere signal [3]
and dispatches it to registered handlers for processing (e.g. writing to
console/file/queue/db, etc.).
Telemere doesn't make a hard distinction between different kinds of signals
(log, event, error, etc.) - they're all just plain Clojure/Script maps with
various keys:
- All signal creators offer the same options [2], and
- All signal kinds can contain the same content [3]
Creators vary only in in their default options and call APIs (expected args
and return values), making them more/less convenient for certain use cases:
`log!` ---------- [message + opts/level] => true iff signal was created (allowed)
`event!` -------- [id + opts/level] => true iff signal was created (allowed)
`error!` -------- [error + opts/id ] => given error (unconditional)
`trace!` -------- [form + opts/id ] => form result (value/throw) (unconditional)
`spy!` ---------- [form + opts/level] => form result (value/throw) (unconditional)
`catch->error!` - [error + opts/id ] => form value, or given fallback
`signal!` ------- [ opts ] => depends on options
- `log!` and `event!` are both good default/general-purpose signal creators.
- `log!` emphasizes messages, while `event!` emphasizes ids.
- `signal!` is the generic creator, and is used by all the others.
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-help.3Asignal-filters"><h3>help:signal-filters</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Asignal-filters">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-help.3Asignal-flow"><h3>help:signal-flow</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Asignal-flow">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">A signal will be provided to a handler iff ALL of the following are true:
If anything is unclear, please ping me (@ptaoussanis) so that I can
improve these docs!</pre></div></div><divclass="public anchor"id="var-help.3Asignal-formatters"><h3>help:signal-formatters</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Asignal-formatters">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Common signal formatters include:
See relevant docstrings for details.</pre></div></div><divclass="public anchor"id="var-help.3Asignal-handlers"><h3>help:signal-handlers</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Asignal-handlers">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-help.3Asignal-options"><h3>help:signal-options</h3><h4class="lang"><ahref="taoensso.telemere.html#var-help.3Asignal-options">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Signal options (shared by all signal creators):
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-msg-skip"><h3>msg-skip</h3><h4class="lang"><ahref="taoensso.telemere.html#var-msg-skip">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-msg-splice"><h3>msg-splice</h3><h4class="lang"><ahref="taoensso.telemere.html#var-msg-splice">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(msg-splice args)</code></div><divclass="doc"><preclass="plaintext">For use within signal message vectors.
%> {:msg_ "Username: Steve"}</pre></div></div><divclass="public anchor"id="var-newline"><h3>newline</h3><h4class="lang"><ahref="taoensso.telemere.html#var-newline">clj</a></h4><h4class="lang current">cljs</h4><h4class="added">added in Encore v3.68.0 (2023-09-25)</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Single system newline
</pre></div></div><divclass="public anchor"id="var-rate-limiter"><h3>rate-limiter</h3><h4class="lang"><ahref="taoensso.telemere.html#var-rate-limiter">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(rate-limiter spec)</code><code>(rate-limiter opts spec)</code></div><divclass="doc"><preclass="plaintext">Takes a spec of form
[ [<n-max-reqs><msecs-window>] ...] or
<send message>))</pre></div></div><divclass="public anchor"id="var-remove-handler.21"><h3>remove-handler!</h3><h4class="lang"><ahref="taoensso.telemere.html#var-remove-handler.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(remove-handler! handler-id)</code></div><divclass="doc"><preclass="plaintext">Deregisters signal handler with given id, and returns
still registered.</pre></div></div><divclass="public anchor"id="var-set-ctx.21"><h3>set-ctx!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-set-ctx.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(set-ctx! root-val)</code></div><divclass="doc"><preclass="plaintext">Set `*ctx*` var's root (base) value. See `*ctx*` for details.
</pre></div></div><divclass="public anchor"id="var-set-id-filter.21"><h3>set-id-filter!</h3><h4class="lang"><ahref="taoensso.telemere.html#var-set-id-filter.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(set-id-filter! id-filter)</code></div><divclass="doc"><preclass="plaintext">Sets signal call id filter based on given `id-filter` spec.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:deny` spec MUST NOT match.</pre></div></div><divclass="public anchor"id="var-set-kind-filter.21"><h3>set-kind-filter!</h3><h4class="lang"><ahref="taoensso.telemere.html#var-set-kind-filter.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(set-kind-filter! kind-filter)</code></div><divclass="doc"><preclass="plaintext">Sets signal call kind filter based on given `kind-filter` spec.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:deny` spec MUST NOT match.</pre></div></div><divclass="public anchor"id="var-set-middleware.21"><h3>set-middleware!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-set-middleware.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(set-middleware! root-val)</code></div><divclass="doc"><preclass="plaintext">Set `*middleware*` var's root (base) value. See `*middleware*` for details.
</pre></div></div><divclass="public anchor"id="var-set-min-level.21"><h3>set-min-level!</h3><h4class="lang"><ahref="taoensso.telemere.html#var-set-min-level.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(set-min-level! min-level)</code><code>(set-min-level! kind min-level)</code><code>(set-min-level! kind ns-filter min-level)</code></div><divclass="doc"><preclass="plaintext">Sets minimum signal call level based on given `min-level` spec.
(set-min-level! :info) ; Set `:info` as minimum level
(set-min-level! 100) ; Set 100 as minimum level
;; Set `:debug` as minimum level for current namespace
;; (nil `kind` => apply to all kinds)
(set-min-level! nil *ns* :debug)</pre></div></div><divclass="public anchor"id="var-set-ns-filter.21"><h3>set-ns-filter!</h3><h4class="lang"><ahref="taoensso.telemere.html#var-set-ns-filter.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(set-ns-filter! ns-filter)</code></div><divclass="doc"><preclass="plaintext">Sets signal call namespace filter based on given `ns-filter` spec.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:deny` spec MUST NOT match.</pre></div></div><divclass="public anchor"id="var-set-var-root.21"><h3>set-var-root!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-set-var-root.21">clj</a></h4><h4class="lang current">cljs</h4><h4class="added">added in Encore v3.75.0 (2024-01-29)</h4><divclass="usage"><code>(set-var-root! var-sym root-val)</code></div><divclass="doc"><preclass="plaintext">Sets root binding (value) of the var identified by given symbol, and returns
the new value. Cross-platform. See also `update-var-root!`.</pre></div></div><divclass="public anchor"id="var-shut-down-handlers.21"><h3>shut-down-handlers!</h3><h4class="lang"><ahref="taoensso.telemere.html#var-shut-down-handlers.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(shut-down-handlers!)</code></div><divclass="doc"><preclass="plaintext">Shuts down all registered signal handlers in parallel, and returns
Clj only: `shut-down-handlers!` is called automatically on JVM shutdown.</pre></div></div><divclass="public anchor"id="var-signal.21"><h3>signal!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-signal.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(signal! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]})</code></div><divclass="doc"><preclass="plaintext">Low-level generic signal creator.
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-spy.21"><h3>spy!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-spy.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(spy! form)</code><code>(spy! id form)</code><code>(spy! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]} form)</code></div><divclass="doc"><preclass="plaintext">"Spy" signal creator, emphasizing form + level.
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-trace.21"><h3>trace!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-trace.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(trace! form)</code><code>(trace! id form)</code><code>(trace! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]} form)</code></div><divclass="doc"><preclass="plaintext">"Trace" signal creator, emphasizing form + id.
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
[4] See `help:signal-flow` - (filters, handling, etc.)</pre></div></div><divclass="public anchor"id="var-uncaught-.3Eerror.21"><h3>uncaught->error!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-uncaught-.3Eerror.21">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(uncaught->error!)</code><code>(uncaught->error! id)</code><code>(uncaught->error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]})</code></div><divclass="doc"><preclass="plaintext">Uses `uncaught->handler!` so that `error!` will be called for
See `uncaught->handler!` and `error!` for details.</pre></div></div><divclass="public anchor"id="var-update-var-root.21"><h3>update-var-root!</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-update-var-root.21">clj</a></h4><h4class="lang current">cljs</h4><h4class="added">added in Encore v3.68.0 (2023-09-25)</h4><divclass="usage"><code>(update-var-root! var-sym update-fn)</code></div><divclass="doc"><preclass="plaintext">Updates root binding (value) of the var identified by given symbol, and returns
Similar to `alter-var-root` but cross-platform and takes a symbol rather than a var.
See also `set-var-root!`.</pre></div></div><divclass="public anchor"id="var-with-ctx"><h3>with-ctx</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-ctx">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-ctx init-val form)</code></div><divclass="doc"><preclass="plaintext">Evaluates given form with given `*ctx*` value. See `*ctx*` for details.
</pre></div></div><divclass="public anchor"id="var-with-ctx.2B"><h3>with-ctx+</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-ctx.2B">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-ctx+ update-map-or-fn form)</code></div><divclass="doc"><preclass="plaintext">Evaluates given form with updated `*ctx*` value.
`update-map-or-fn` may be:
- A map to merge with current `*ctx*` value, or
- A unary fn to apply to current `*ctx*` value
See `*ctx*` for details.</pre></div></div><divclass="public anchor"id="var-with-err-.3Etelemere"><h3>with-err->telemere</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-err-.3Etelemere">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-err->telemere form)</code><code>(with-err->telemere opts form)</code></div><divclass="doc"><preclass="plaintext">Executes form with `*err*` bound to flush to Telemere signals with given opts.
</pre></div></div><divclass="public anchor"id="var-with-handler"><h3>with-handler</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-handler">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-handler handler-id handler-fn dispatch-opts form)</code></div><divclass="doc"><preclass="plaintext">Executes form with ONLY the given handler-fn registered.
Useful for tests/debugging. See also `with-handler+`.</pre></div></div><divclass="public anchor"id="var-with-handler.2B"><h3>with-handler+</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-handler.2B">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-handler+ handler-id handler-fn dispatch-opts form)</code></div><divclass="doc"><preclass="plaintext">Executes form with the given handler-fn registered.
Useful for tests/debugging. See also `with-handler`.</pre></div></div><divclass="public anchor"id="var-with-id-filter"><h3>with-id-filter</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-id-filter">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-id-filter id-filter form)</code></div><divclass="doc"><preclass="plaintext">Executes form with given signal call id filter in effect.
See `set-id-filter!` for details.</pre></div></div><divclass="public anchor"id="var-with-kind-filter"><h3>with-kind-filter</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-kind-filter">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-kind-filter kind-filter form)</code></div><divclass="doc"><preclass="plaintext">Executes form with given signal call kind filter in effect.
See `set-kind-filter!` for details.</pre></div></div><divclass="public anchor"id="var-with-middleware"><h3>with-middleware</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-middleware">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-middleware init-val form)</code></div><divclass="doc"><preclass="plaintext">Evaluates given form with given `*middleware*` value.
See `*middleware*` for details.</pre></div></div><divclass="public anchor"id="var-with-min-level"><h3>with-min-level</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-min-level">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-min-level min-level form)</code><code>(with-min-level kind min-level form)</code><code>(with-min-level kind ns-filter min-level form)</code></div><divclass="doc"><preclass="plaintext">Executes form with given minimum signal call level in effect.
See `set-min-level!` for details.</pre></div></div><divclass="public anchor"id="var-with-ns-filter"><h3>with-ns-filter</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-ns-filter">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-ns-filter ns-filter form)</code></div><divclass="doc"><preclass="plaintext">Executes form with given signal call namespace filter in effect.
See `set-ns-filter!` for details.</pre></div></div><divclass="public anchor"id="var-with-out-.3Etelemere"><h3>with-out->telemere</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-with-out-.3Etelemere">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(with-out->telemere form)</code><code>(with-out->telemere opts form)</code></div><divclass="doc"><preclass="plaintext">Executes form with `*out*` bound to flush to Telemere signals with given opts.
with given opts.</pre></div></div><divclass="public anchor"id="var-without-filters"><h3>without-filters</h3><h4class="type">macro</h4><h4class="lang"><ahref="taoensso.telemere.html#var-without-filters">clj</a></h4><h4class="lang current">cljs</h4><divclass="usage"><code>(without-filters form)</code></div><divclass="doc"><preclass="plaintext">Executes form without any runtime filters.