diff --git a/index.clj.html b/index.clj.html index e75be91..3479664 100644 --- a/index.clj.html +++ b/index.clj.html @@ -1,8 +1,9 @@ -Telemere 1.0.0-beta16

Telemere 1.0.0-beta16

Released under the Eclipse Public License - v 1.0

Structured telemetry library for Clojure/Script.

Installation

To install, add the following dependency to your project or build file:

[com.taoensso/telemere "1.0.0-beta16"]

Namespaces

taoensso.telemere

Structured telemetry for Clojure/Script applications.

taoensso.telemere.open-telemetry

OpenTelemetry handler using `opentelemetry-java`,
-Ref. <https://github.com/open-telemetry/opentelemetry-java>.

taoensso.telemere.postal

Email handler using `postal`,
+Telemere 1.0.0-beta18

Telemere 1.0.0-beta18

Released under the Eclipse Public License - v 1.0

Structured telemetry library for Clojure/Script.

Installation

To install, add the following dependency to your project or build file:

[com.taoensso/telemere "1.0.0-beta18"]

Namespaces

taoensso.telemere.postal

Email handler using `postal`,
 Ref. <https://github.com/drewr/postal>.

Public variables and functions:

taoensso.telemere.slack

Slack handler using `clj-slack`,
 Ref. <https://github.com/julienXX/clj-slack>

Public variables and functions:

taoensso.telemere.sockets

Basic TCP/UDP socket handlers.

Public variables and functions:

taoensso.telemere.tools-logging

Intake support for `tools.logging` -> Telemere.
-Telemere will attempt to load this ns automatically when possible.
\ No newline at end of file +Telemere will attempt to load this ns automatically when possible.

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.
\ No newline at end of file diff --git a/index.cljs.html b/index.cljs.html index f6fb5d1..b1ae4e9 100644 --- a/index.cljs.html +++ b/index.cljs.html @@ -1,4 +1,4 @@ -Telemere 1.0.0-beta16

Telemere 1.0.0-beta16

Released under the Eclipse Public License - v 1.0

Structured telemetry library for Clojure/Script.

Installation

To install, add the following dependency to your project or build file:

[com.taoensso/telemere "1.0.0-beta16"]

Namespaces

taoensso.telemere

Structured telemetry for Clojure/Script applications.

taoensso.telemere.timbre

Main Timbre macros, reimplemented on top of Telemere.
-Intended to help ease migration from Timbre to Telemere.

Public variables and functions:

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.
\ No newline at end of file +Telemere 1.0.0-beta18

Telemere 1.0.0-beta18

Released under the Eclipse Public License - v 1.0

Structured telemetry library for Clojure/Script.

Installation

To install, add the following dependency to your project or build file:

[com.taoensso/telemere "1.0.0-beta18"]

Namespaces

taoensso.telemere

Structured telemetry for Clojure/Script applications.

taoensso.telemere.timbre

Main Timbre macros, reimplemented on top of Telemere.
+Intended to help ease migration from Timbre to Telemere.

Public variables and functions:

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.
\ No newline at end of file diff --git a/index.html b/index.html index c4203f0..3b5a08a 100644 --- a/index.html +++ b/index.html @@ -1,3 +1,3 @@ -Telemere 1.0.0-beta16

Telemere 1.0.0-beta16

Released under the Eclipse Public License - v 1.0

Structured telemetry library for Clojure/Script.

Installation

To install, add the following dependency to your project or build file:

[com.taoensso/telemere "1.0.0-beta16"]

Platforms

This project includes code for multiple platforms, please choose a platform to view its documentation:

\ No newline at end of file +Telemere 1.0.0-beta18

Telemere 1.0.0-beta18

Released under the Eclipse Public License - v 1.0

Structured telemetry library for Clojure/Script.

Installation

To install, add the following dependency to your project or build file:

[com.taoensso/telemere "1.0.0-beta18"]

Platforms

This project includes code for multiple platforms, please choose a platform to view its documentation:

\ No newline at end of file diff --git a/taoensso.telemere.cljs.html b/taoensso.telemere.cljs.html index ff33ec5..6c4e0fe 100644 --- a/taoensso.telemere.cljs.html +++ b/taoensso.telemere.cljs.html @@ -1,6 +1,6 @@ -taoensso.telemere documentation

taoensso.telemere

Structured telemetry for Clojure/Script applications.
+taoensso.telemere documentation

taoensso.telemere

Structured telemetry for Clojure/Script applications.
 
 See the GitHub page (esp. Wiki) for info on motivation and design:
   <https://www.taoensso.com/telemere>

*ctx*

dynamic

clj

cljs

Optional context (state) attached to all signals.
@@ -31,7 +31,27 @@ futures, agents, etc.
 
 Tips:
   - Compose multiple middleware fns together with `comp-middleware`.
-  - Use `get-env` to set default (root) value based on environmental config.

add-handler!

clj

cljs

(add-handler! handler-id handler-fn)(add-handler! handler-id handler-fn dispatch-opts)
Registers given signal handler and returns
+  - Use `get-env` to set default (root) value based on environmental config.

*uid-fn*

dynamic

clj

cljs

Experimental, subject to change.
+(fn [root?]) used to generate signal `:uid` values when tracing.
+These are basically unique signal instance identifiers.
+
+`root?` argument is true iff signal is a top-level trace (i.e. form
+being traced is unnested = has no parent form).
+
+Root  uids typically have ~128 bits of entropy to ensure uniqueness.
+Child uids are typically used only with respect to a parent/root,
+and so can often make do with ~64 bits of entropy or less.
+
+Smaller uids are generally cheaper to generate, and use less space
+when serializing/transmitting/storing/etc.
+
+By default generates nano-style uids like
+  "r76-B8LoIPs5lBG1_Uhdy" (root) and "tMEYoZH0K-" (non-root).
+
+For plain fixed-length UUIDs        use: (fn [_root?] (utils/uuid))
+For plain fixed-length UUID strings use: (fn [_root?] (utils/uuid-str))
+
+See also `utils/nano-uid-fn`, `utils/hex-id-fn`, etc.

add-handler!

clj

cljs

(add-handler! handler-id handler-fn)(add-handler! handler-id handler-fn dispatch-opts)
Registers given signal handler and returns
 {<handler-id> {:keys [dispatch-opts handler-fn]}} for all handlers
 now registered.
 
@@ -54,7 +74,7 @@ NB you should always call `stop-handlers!` somewhere appropriate - usually
 near the end of your `-main` or shutdown procedure, AFTER all other code has
 completed that could create signals.
 
-See `help:handler-dispatch-options` for handler filters, etc.

catch->error!

macro

clj

cljs

(catch->error! form)(catch->error! id form)(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)
Unconditionally executes given form and-
+See `help:handler-dispatch-options` for handler filters, etc.

catch->error!

macro

clj

cljs

(catch->error! form)(catch->error! id form)(catch->error! {:as opts, :keys [rethrow? catch-val elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} form)
Unconditionally executes given form and-
   If form succeeds: return the form's result.
   If form   throws:
     Call `error!` with the thrown error and the given signal options [2],
@@ -99,7 +119,7 @@ returned composite fn immediately returns nil:
   ((comp-middleware inc #(* % 2) inc) 1) => 5 ; (inc (* (inc 1) 2))
   ((comp-middleware inc (fn [_] nil) (fn [_] (throw (Exception. "Never thrown!")))) 1) => nil
 
-Useful for composing Ring-style middleware fns.

default-handler-dispatch-opts

clj

cljs

error!

macro

clj

cljs

(error! error)(error! id error)(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)
"Error" signal creator, emphasizing error + id.
+Useful for composing Ring-style middleware fns.

default-handler-dispatch-opts

clj

cljs

error!

macro

clj

cljs

(error! error)(error! id error)(error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} error)
"Error" signal creator, emphasizing error + id.
 
 API: [error] [id-or-opts error] => given error (unconditional)
 Default  kind: `:error`
@@ -131,7 +151,7 @@ Tips:
 [3] See `help:signal-content`  - {:keys [kind level id data ...]}
 [4] See `help:signal-filters`  - (by ns/kind/id/level, sampling, etc.)

error-signal?

clj

cljs

(error-signal? signal)
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.

event!

macro

clj

cljs

(event! id)(event! id level)(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]})
"Event" signal creator, emphasizing id + level.
+that indicates that it's an error.

event!

macro

clj

cljs

(event! id)(event! id level)(event! id {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]})
"Event" signal creator, emphasizing id + level.
 
 API: [id] [id level-or-opts] => true iff signal was allowed
 Default  kind: `:event`
@@ -522,8 +542,8 @@ Default signal keys:
 `:inst` -------- Platform instant [1] when signal was created
 `:level` ------- Signal level ∈ #{<int> :trace :debug :info :warn :error :fatal :report ...}
 `:kind` -------- Signal ?kind ∈ #{nil :event :error :log :trace :spy :slf4j :tools-logging <app-val> ...}
-`:id` ---------- ?id of signal          (common to all  signals created at callsite, contrast with `:uid`)
-`:uid` --------- ?id of signal instance (unique to each signal  created at callsite, contrast with  `:id`)
+`:id` ---------- ?id of signal          (common to all  signals created at callsite,              contrast with `:uid`)
+`:uid` --------- ?id of signal instance (unique to each signal  created at callsite when tracing, contrast with  `:id`)
 
 `:msg` --------- Arb app-level message  ?str              given to signal creator
 `:data` -------- Arb app-level data     ?val (usu. a map) given to signal creator
@@ -536,12 +556,17 @@ Default signal keys:
 
 `:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created
 `:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing
+`:root` -------- ?{:keys [id uid]} of root   signal, present in nested signals when tracing
+
 `:location` ---- ?{:keys [ns file line column]} signal creator callsite
 `:ns` ---------- ?str namespace of signal creator callsite, same as (:ns     location)
 `:line` -------- ?int line      of signal creator callsite, same as (:line   location)
 `:column` ------ ?int column    of signal creator callsite, same as (:column location)
 `:file` -------- ?str filename  of signal creator callsite, same as (:file   location)
-`:thread` ------ (Clj only) {:keys [group name id]} thread info for thread that called signal creator
+
+`:host` -------- (Clj only) {:keys [name ip]}       info for network host
+`:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal
+
 `:sample-rate` - ?rate ∈ℝ[0,1] for combined signal AND handler sampling (0.75 => allow 75% of signals, nil => allow all)
 
 <kvs> ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included
@@ -567,13 +592,13 @@ various keys:
 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
+  `event!` -------- [id   ] or [id   opts/level] => true iff signal was created (allowed)
+  `log!` ---------- [msg  ] or [opts/level  msg] => true iff signal was created (allowed)
+  `error!` -------- [error] or [opts/id   error] => given error (unconditional)
+  `trace!` -------- [form ] or [opts/id    form] => form result (value/throw) (unconditional)
+  `spy!` ---------- [form ] or [opts/level form] => form result (value/throw) (unconditional)
+  `catch->error!` - [form ] or [opts/id    form] => 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.
@@ -599,7 +624,8 @@ and return values), making them more/less convenient for certain use cases:
 `:let` --------- ?bindings to establish conditionally (iff signal allowed), BEFORE evaluating `:data` and `:msg` (useful!)
 
 `:ctx` --------- Custom ?val to override auto (dynamic `*ctx*`) in signal
-`:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal info in signal
+`:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal tracing info
+`:root` -------- Custom ?{:keys [id uid]} to override auto (dynamic) root   signal tracing info
 `:location` ---- Custom ?{:keys [ns line column file]} to override auto signal creator callsite location
 
 `:elidable?` --- Should signal be subject to compile-time elision? (Default: true)
@@ -618,7 +644,7 @@ handler-specific data that can just be ignored by other handlers
 If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!
 
 [1] `java.time.Instant`   or `js/Date`
-[2] `java.lang.Throwable` or `js/Error`

level-aliases

clj

cljs

log!

macro

clj

cljs

(log! msg)(log! level msg)(log! {: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]} msg)
"Log" signal creator, emphasizing message + level.
+[2] `java.lang.Throwable` or `js/Error`

level-aliases

clj

cljs

log!

macro

clj

cljs

(log! msg)(log! level msg)(log! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} msg)
"Log" signal creator, emphasizing message + level.
 
 API: [msg] [level-or-opts msg] => true iff signal was allowed.
 Default  kind: `:log`
@@ -760,7 +786,7 @@ Examples:
   - {:allow <spec> :disallow <spec>} with specs as above.
     If present, `:allow`    spec MUST     match, AND
     If present, `:disallow` spec MUST NOT match.

set-var-root!

macro

clj

cljs

added in Encore v3.75.0 (2024-01-29)

(set-var-root! var-sym root-val)
Sets root binding (value) of the var identified by given symbol, and returns
-the new value. Cross-platform. See also `update-var-root!`.

signal!

macro

clj

cljs

(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]})
Low-level generic signal creator.
+the new value. Cross-platform. See also `update-var-root!`.

signal!

macro

clj

cljs

(signal! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]})
Low-level generic signal creator.
 
 API: [opts] => depends on options [2]
 Default  kind: none (optional)
@@ -787,7 +813,7 @@ Tips:
 [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-filters`  - (by ns/kind/id/level, sampling, etc.)

spy!

macro

clj

cljs

(spy! form)(spy! id form)(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)
"Spy" signal creator, emphasizing form + level.
+[4] See `help:signal-filters`  - (by ns/kind/id/level, sampling, etc.)

spy!

macro

clj

cljs

(spy! form)(spy! id form)(spy! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Spy" signal creator, emphasizing form + level.
 
 API: [form] [level-or-opts form] => form's result (value/throw) (unconditional)
 Default kind:  `:spy`
@@ -838,7 +864,7 @@ handler's `:drain-msecs` value (see `help:handler-dispatch-options`).
 
 NB you should always call `stop-handlers!` somewhere appropriate - usually
 near the end of your `-main` or shutdown procedure, AFTER all other code has
-completed that could create signals.

trace!

macro

clj

cljs

(trace! form)(trace! id form)(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)
"Trace" signal creator, emphasizing form + id.
+completed that could create signals.

trace!

macro

clj

cljs

(trace! form)(trace! id form)(trace! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Trace" signal creator, emphasizing form + id.
 
 API: [form] [id-or-opts form] => form's result (value/throw) (unconditional)
 Default  kind: `:trace`
@@ -882,7 +908,7 @@ Tips:
 [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-filters`  - (by ns/kind/id/level, sampling, etc.)

uncaught->error!

macro

clj

cljs

(uncaught->error!)(uncaught->error! id)(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]})
Uses `uncaught->handler!` so that `error!` will be called for
+[4] See `help:signal-filters`  - (by ns/kind/id/level, sampling, etc.)

uncaught->error!

macro

clj

cljs

(uncaught->error!)(uncaught->error! id)(uncaught->error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]})
Uses `uncaught->handler!` so that `error!` will be called for
 uncaught JVM errors.
 
 See `uncaught->handler!` and `error!` for details.

update-var-root!

macro

clj

cljs

added in Encore v3.68.0 (2023-09-25)

(update-var-root! var-sym update-fn)
Updates root binding (value) of the var identified by given symbol, and returns
@@ -912,7 +938,7 @@ See `set-kind-filter!` for details.

with-min-level

macro

clj

cljs

(with-min-level min-level form)(with-min-level kind min-level form)(with-min-level kind ns-filter min-level form)
Executes form with given minimum signal level in effect.
 See `set-min-level!` for details.

with-ns-filter

macro

clj

cljs

(with-ns-filter ns-filter form)
Executes form with given signal namespace filter in effect.
 See `set-ns-filter!` for details.

with-out->telemere

macro

clj

cljs

(with-out->telemere form)(with-out->telemere opts form)
Executes form with `*out*` bound to flush to Telemere signals with given opts.
-

with-signal

macro

clj

cljs

(with-signal form)(with-signal trap-signals? form)(with-signal raw-msg? trap-signals? form)
Experimental.
+

with-signal

macro

clj

cljs

(with-signal form)(with-signal trap-signals? form)(with-signal raw-msg? trap-signals? form)
Experimental, subject to change.
 Executes given form, trapping errors. Returns the LAST signal created by form.
 Useful for tests/debugging.
 
@@ -925,7 +951,7 @@ Options:
     Should delayed `:msg_` in returned signal be retained as-is?
     Delay is otherwise replaced by realized string.
 
-See also `with-signals`.

with-signals

macro

clj

cljs

(with-signals form)(with-signals trap-signals? form)(with-signals raw-msgs? trap-signals? form)
Experimental.
+See also `with-signals`.

with-signals

macro

clj

cljs

(with-signals form)(with-signals trap-signals? form)(with-signals raw-msgs? trap-signals? form)
Experimental, subject to change.
 Like `with-signal` but returns [[<form-value> <form-error>] [<signal1> ...]].
 Useful for tests/debugging.

with-streams->telemere

macro

clj

cljs

(with-streams->telemere form)(with-streams->telemere {:keys [out err], :or {out default-out-opts, err default-err-opts}} form)
Executes form with `*out*` and/or `*err*` bound to flush to Telemere signals
 with given opts.

without-filters

macro

clj

cljs

(without-filters form)
Executes form without any runtime signal filters.
diff --git a/taoensso.telemere.html b/taoensso.telemere.html
index 5328cab..c899ab4 100644
--- a/taoensso.telemere.html
+++ b/taoensso.telemere.html
@@ -1,6 +1,6 @@
 
-taoensso.telemere documentation

taoensso.telemere

Structured telemetry for Clojure/Script applications.
+taoensso.telemere documentation

taoensso.telemere

Structured telemetry for Clojure/Script applications.
 
 See the GitHub page (esp. Wiki) for info on motivation and design:
   <https://www.taoensso.com/telemere>

*ctx*

dynamic

clj

cljs

Optional context (state) attached to all signals.
@@ -31,7 +31,27 @@ futures, agents, etc.
 
 Tips:
   - Compose multiple middleware fns together with `comp-middleware`.
-  - Use `get-env` to set default (root) value based on environmental config.

add-handler!

clj

cljs

(add-handler! handler-id handler-fn)(add-handler! handler-id handler-fn dispatch-opts)
Registers given signal handler and returns
+  - Use `get-env` to set default (root) value based on environmental config.

*uid-fn*

dynamic

clj

cljs

Experimental, subject to change.
+(fn [root?]) used to generate signal `:uid` values when tracing.
+These are basically unique signal instance identifiers.
+
+`root?` argument is true iff signal is a top-level trace (i.e. form
+being traced is unnested = has no parent form).
+
+Root  uids typically have ~128 bits of entropy to ensure uniqueness.
+Child uids are typically used only with respect to a parent/root,
+and so can often make do with ~64 bits of entropy or less.
+
+Smaller uids are generally cheaper to generate, and use less space
+when serializing/transmitting/storing/etc.
+
+By default generates nano-style uids like
+  "r76-B8LoIPs5lBG1_Uhdy" (root) and "tMEYoZH0K-" (non-root).
+
+For plain fixed-length UUIDs        use: (fn [_root?] (utils/uuid))
+For plain fixed-length UUID strings use: (fn [_root?] (utils/uuid-str))
+
+See also `utils/nano-uid-fn`, `utils/hex-id-fn`, etc.

add-handler!

clj

cljs

(add-handler! handler-id handler-fn)(add-handler! handler-id handler-fn dispatch-opts)
Registers given signal handler and returns
 {<handler-id> {:keys [dispatch-opts handler-fn]}} for all handlers
 now registered.
 
@@ -56,7 +76,7 @@ completed that could create signals.
 
 See `help:handler-dispatch-options` for handler filters, etc.

call-on-shutdown!

clj

added in Encore v3.114.0 (2024-08-07)

(call-on-shutdown! f)
Registers given nullary fn as a JVM shutdown hook.
 (f) will be called sometime during shutdown. While running, it will
-attempt to block shutdown.

catch->error!

macro

clj

cljs

(catch->error! form)(catch->error! id form)(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)
Unconditionally executes given form and-
+attempt to block shutdown.

catch->error!

macro

clj

cljs

(catch->error! form)(catch->error! id form)(catch->error! {:as opts, :keys [rethrow? catch-val elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} form)
Unconditionally executes given form and-
   If form succeeds: return the form's result.
   If form   throws:
     Call `error!` with the thrown error and the given signal options [2],
@@ -106,7 +126,7 @@ returned composite fn immediately returns nil:
   ((comp-middleware inc (fn [_] nil) (fn [_] (throw (Exception. "Never thrown!")))) 1) => nil
 
 Useful for composing Ring-style middleware fns.

default-handler-dispatch-opts

clj

cljs

Default handler dispatch options, see
-`help:handler-dispatch-options` for details.

error!

macro

clj

cljs

(error! error)(error! id error)(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)
"Error" signal creator, emphasizing error + id.
+`help:handler-dispatch-options` for details.

error!

macro

clj

cljs

(error! error)(error! id error)(error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} error)
"Error" signal creator, emphasizing error + id.
 
 API: [error] [id-or-opts error] => given error (unconditional)
 Default  kind: `:error`
@@ -138,7 +158,7 @@ Tips:
 [3] See `help:signal-content`  - {:keys [kind level id data ...]}
 [4] See `help:signal-filters`  - (by ns/kind/id/level, sampling, etc.)

error-signal?

clj

cljs

(error-signal? signal)
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.

event!

macro

clj

cljs

(event! id)(event! id level)(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]})
"Event" signal creator, emphasizing id + level.
+that indicates that it's an error.

event!

macro

clj

cljs

(event! id)(event! id level)(event! id {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]})
"Event" signal creator, emphasizing id + level.
 
 API: [id] [id level-or-opts] => true iff signal was allowed
 Default  kind: `:event`
@@ -552,8 +572,8 @@ Default signal keys:
 `:inst` -------- Platform instant [1] when signal was created
 `:level` ------- Signal level ∈ #{<int> :trace :debug :info :warn :error :fatal :report ...}
 `:kind` -------- Signal ?kind ∈ #{nil :event :error :log :trace :spy :slf4j :tools-logging <app-val> ...}
-`:id` ---------- ?id of signal          (common to all  signals created at callsite, contrast with `:uid`)
-`:uid` --------- ?id of signal instance (unique to each signal  created at callsite, contrast with  `:id`)
+`:id` ---------- ?id of signal          (common to all  signals created at callsite,              contrast with `:uid`)
+`:uid` --------- ?id of signal instance (unique to each signal  created at callsite when tracing, contrast with  `:id`)
 
 `:msg` --------- Arb app-level message  ?str              given to signal creator
 `:data` -------- Arb app-level data     ?val (usu. a map) given to signal creator
@@ -566,12 +586,17 @@ Default signal keys:
 
 `:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created
 `:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing
+`:root` -------- ?{:keys [id uid]} of root   signal, present in nested signals when tracing
+
 `:location` ---- ?{:keys [ns file line column]} signal creator callsite
 `:ns` ---------- ?str namespace of signal creator callsite, same as (:ns     location)
 `:line` -------- ?int line      of signal creator callsite, same as (:line   location)
 `:column` ------ ?int column    of signal creator callsite, same as (:column location)
 `:file` -------- ?str filename  of signal creator callsite, same as (:file   location)
-`:thread` ------ (Clj only) {:keys [group name id]} thread info for thread that called signal creator
+
+`:host` -------- (Clj only) {:keys [name ip]}       info for network host
+`:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal
+
 `:sample-rate` - ?rate ∈ℝ[0,1] for combined signal AND handler sampling (0.75 => allow 75% of signals, nil => allow all)
 
 <kvs> ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included
@@ -597,13 +622,13 @@ various keys:
 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
+  `event!` -------- [id   ] or [id   opts/level] => true iff signal was created (allowed)
+  `log!` ---------- [msg  ] or [opts/level  msg] => true iff signal was created (allowed)
+  `error!` -------- [error] or [opts/id   error] => given error (unconditional)
+  `trace!` -------- [form ] or [opts/id    form] => form result (value/throw) (unconditional)
+  `spy!` ---------- [form ] or [opts/level form] => form result (value/throw) (unconditional)
+  `catch->error!` - [form ] or [opts/id    form] => 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.
@@ -629,7 +654,8 @@ and return values), making them more/less convenient for certain use cases:
 `:let` --------- ?bindings to establish conditionally (iff signal allowed), BEFORE evaluating `:data` and `:msg` (useful!)
 
 `:ctx` --------- Custom ?val to override auto (dynamic `*ctx*`) in signal
-`:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal info in signal
+`:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal tracing info
+`:root` -------- Custom ?{:keys [id uid]} to override auto (dynamic) root   signal tracing info
 `:location` ---- Custom ?{:keys [ns line column file]} to override auto signal creator callsite location
 
 `:elidable?` --- Should signal be subject to compile-time elision? (Default: true)
@@ -649,7 +675,7 @@ If anything is unclear, please ping me (@ptaoussanis) so that I can improve thes
 
 [1] `java.time.Instant`   or `js/Date`
 [2] `java.lang.Throwable` or `js/Error`

level-aliases

clj

cljs

Map of {<level-keyword> <level-integer>} aliases.
-

log!

macro

clj

cljs

(log! msg)(log! level msg)(log! {: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]} msg)
"Log" signal creator, emphasizing message + level.
+

log!

macro

clj

cljs

(log! msg)(log! level msg)(log! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} msg)
"Log" signal creator, emphasizing message + level.
 
 API: [msg] [level-or-opts msg] => true iff signal was allowed.
 Default  kind: `:log`
@@ -798,7 +824,7 @@ Examples:
   - {:allow <spec> :disallow <spec>} with specs as above.
     If present, `:allow`    spec MUST     match, AND
     If present, `:disallow` spec MUST NOT match.

set-var-root!

macro

clj

cljs

added in Encore v3.75.0 (2024-01-29)

(set-var-root! var-sym root-val)
Sets root binding (value) of the var identified by given symbol, and returns
-the new value. Cross-platform. See also `update-var-root!`.

signal!

macro

clj

cljs

(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]})
Low-level generic signal creator.
+the new value. Cross-platform. See also `update-var-root!`.

signal!

macro

clj

cljs

(signal! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]})
Low-level generic signal creator.
 
 API: [opts] => depends on options [2]
 Default  kind: none (optional)
@@ -825,7 +851,7 @@ Tips:
 [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-filters`  - (by ns/kind/id/level, sampling, etc.)

spy!

macro

clj

cljs

(spy! form)(spy! id form)(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)
"Spy" signal creator, emphasizing form + level.
+[4] See `help:signal-filters`  - (by ns/kind/id/level, sampling, etc.)

spy!

macro

clj

cljs

(spy! form)(spy! id form)(spy! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Spy" signal creator, emphasizing form + level.
 
 API: [form] [level-or-opts form] => form's result (value/throw) (unconditional)
 Default kind:  `:spy`
@@ -889,7 +915,7 @@ and       setting `System/err` won't necessarily affect Clojure's `*err*`.
 See also:
   `with-out->telemere`,
   `with-err->telemere`,
-  `with-streams->telemere`.

trace!

macro

clj

cljs

(trace! form)(trace! id form)(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)
"Trace" signal creator, emphasizing form + id.
+  `with-streams->telemere`.

trace!

macro

clj

cljs

(trace! form)(trace! id form)(trace! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Trace" signal creator, emphasizing form + id.
 
 API: [form] [id-or-opts form] => form's result (value/throw) (unconditional)
 Default  kind: `:trace`
@@ -933,7 +959,7 @@ Tips:
 [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-filters`  - (by ns/kind/id/level, sampling, etc.)

uncaught->error!

macro

clj

cljs

(uncaught->error!)(uncaught->error! id)(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]})
Uses `uncaught->handler!` so that `error!` will be called for
+[4] See `help:signal-filters`  - (by ns/kind/id/level, sampling, etc.)

uncaught->error!

macro

clj

cljs

(uncaught->error!)(uncaught->error! id)(uncaught->error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]})
Uses `uncaught->handler!` so that `error!` will be called for
 uncaught JVM errors.
 
 See `uncaught->handler!` and `error!` for details.

uncaught->handler!

clj

(uncaught->handler! handler)
Sets JVM's global `DefaultUncaughtExceptionHandler` to given
@@ -966,7 +992,7 @@ See `set-kind-filter!` for details.

with-min-level

macro

clj

cljs

(with-min-level min-level form)(with-min-level kind min-level form)(with-min-level kind ns-filter min-level form)
Executes form with given minimum signal level in effect.
 See `set-min-level!` for details.

with-ns-filter

macro

clj

cljs

(with-ns-filter ns-filter form)
Executes form with given signal namespace filter in effect.
 See `set-ns-filter!` for details.

with-out->telemere

macro

clj

cljs

(with-out->telemere form)(with-out->telemere opts form)
Executes form with `*out*` bound to flush to Telemere signals with given opts.
-

with-signal

macro

clj

cljs

(with-signal form)(with-signal trap-signals? form)(with-signal raw-msg? trap-signals? form)
Experimental.
+

with-signal

macro

clj

cljs

(with-signal form)(with-signal trap-signals? form)(with-signal raw-msg? trap-signals? form)
Experimental, subject to change.
 Executes given form, trapping errors. Returns the LAST signal created by form.
 Useful for tests/debugging.
 
@@ -979,7 +1005,7 @@ Options:
     Should delayed `:msg_` in returned signal be retained as-is?
     Delay is otherwise replaced by realized string.
 
-See also `with-signals`.

with-signals

macro

clj

cljs

(with-signals form)(with-signals trap-signals? form)(with-signals raw-msgs? trap-signals? form)
Experimental.
+See also `with-signals`.

with-signals

macro

clj

cljs

(with-signals form)(with-signals trap-signals? form)(with-signals raw-msgs? trap-signals? form)
Experimental, subject to change.
 Like `with-signal` but returns [[<form-value> <form-error>] [<signal1> ...]].
 Useful for tests/debugging.

with-streams->telemere

macro

clj

cljs

(with-streams->telemere form)(with-streams->telemere {:keys [out err], :or {out default-out-opts, err default-err-opts}} form)
Executes form with `*out*` and/or `*err*` bound to flush to Telemere signals
 with given opts.

without-filters

macro

clj

cljs

(without-filters form)
Executes form without any runtime signal filters.
diff --git a/taoensso.telemere.open-telemetry.html b/taoensso.telemere.open-telemetry.html
index 05d39bb..4c6d9da 100644
--- a/taoensso.telemere.open-telemetry.html
+++ b/taoensso.telemere.open-telemetry.html
@@ -1,23 +1,35 @@
 
-taoensso.telemere.open-telemetry documentation

taoensso.telemere.open-telemetry

OpenTelemetry handler using `opentelemetry-java`,
-Ref. <https://github.com/open-telemetry/opentelemetry-java>.

default-logger-provider

clj

(default-logger-provider)
Experimental, subject to change. Feedback welcome!
+taoensso.telemere.open-telemetry documentation

taoensso.telemere.open-telemetry

get-default-providers

clj

(get-default-providers)
Experimental, subject to change. Feedback welcome!
 
-Returns `io.opentelemetry.api.logs.LoggerProvider` via:
-  `AutoConfiguredOpenTelemetrySdk` when possible, or
-  `GlobalOpenTelemetry` otherwise.
+Returns map with keys:
+  :logger-provider - default `io.opentelemetry.api.logs.LoggerProvider`
+  :tracer-provider - default `io.opentelemetry.api.trace.TracerProvider`
+  :via             - ∈ #{:sdk-extension-autoconfigure :global}
 
-See the relevant `opentelemetry-java` docs for details.

handler:open-telemetry-logger

clj

(handler:open-telemetry-logger)(handler:open-telemetry-logger {:keys [logger-provider attrs-signal-key], :or {logger-provider (default-logger-provider), attrs-signal-key :open-telemetry/attrs}})
Experimental, subject to change. Feedback welcome!
+Uses `AutoConfiguredOpenTelemetrySdk` when possible, or
+`GlobalOpenTelemetry` otherwise.
+
+See the relevant `opentelemetry-java` docs for details.

handler:open-telemetry-logger

clj

(handler:open-telemetry-logger)(handler:open-telemetry-logger {:keys [logger-provider tracer-provider max-span-msecs], :or {logger-provider :default, tracer-provider :default, max-span-msecs (enc/msecs :mins 120)}})
Highly experimental, possibly buggy, and subject to change!!
+Feedback and bug reports very welcome! Please ping me (Peter) at:
+  <https://www.taoensso.com/telemere> or
+  <https://www.taoensso.com/telemere/slack>
 
 Needs `opentelemetry-java`,
   Ref. <https://github.com/open-telemetry/opentelemetry-java>.
 
 Returns a signal handler that:
   - Takes a Telemere signal (map).
-  - Emits the signal to `io.opentelemetry.api.logs.Logger` returned
-    by given `io.opentelemetry.api.logs.LoggerProvider`.
+  - Emits signal  data to configured `io.opentelemetry.api.logs.Logger`
+  - Emits tracing data to configured `io.opentelemetry.api.logs.Tracer`
 
 Options:
-  `:logger-provider` - `io.opentelemetry.api.logs.LoggerProvider`
-    Defaults to the LoggerProvider returned by (default-logger-provider),
-    see that docstring for details.

IAttr+

protocol

clj

\ No newline at end of file + `:logger-provider` - ∈ #{nil :default <io.opentelemetry.api.logs.LoggerProvider>} [1] + `:tracer-provider` - ∈ #{nil :default <io.opentelemetry.api.trace.TracerProvider>} [1] + `:max-span-msecs` - (Advanced) Longest tracing span to support in milliseconds + (default 120 mins). If recorded spans exceed this max, emitted + data will be inaccurate. Larger values use more memory. + +[1] See `get-default-providers` for more info
\ No newline at end of file diff --git a/taoensso.telemere.postal.html b/taoensso.telemere.postal.html index 4dfbac5..edeb2db 100644 --- a/taoensso.telemere.postal.html +++ b/taoensso.telemere.postal.html @@ -1,6 +1,6 @@ -taoensso.telemere.postal documentation

taoensso.telemere.postal

Email handler using `postal`,
+taoensso.telemere.postal documentation

taoensso.telemere.postal

Email handler using `postal`,
 Ref. <https://github.com/drewr/postal>.

default-dispatch-opts

clj

handler:postal

clj

(handler:postal {:keys [conn-opts msg-opts subject-fn body-fn], :or {subject-fn (signal-subject-fn), body-fn (utils/format-signal-fn)}})
Experimental, subject to change.
 
 Needs `postal`, Ref. <https://github.com/drewr/postal>.
diff --git a/taoensso.telemere.slack.html b/taoensso.telemere.slack.html
index 32b77a3..59b7aba 100644
--- a/taoensso.telemere.slack.html
+++ b/taoensso.telemere.slack.html
@@ -1,6 +1,6 @@
 
-taoensso.telemere.slack documentation

taoensso.telemere.slack

Slack handler using `clj-slack`,
+taoensso.telemere.slack documentation

taoensso.telemere.slack

Slack handler using `clj-slack`,
 Ref. <https://github.com/julienXX/clj-slack>

default-dispatch-opts

clj

handler:slack

clj

(handler:slack {:keys [conn-opts post-opts output-fn], :or {conn-opts {:api-url "https://slack.com/api", :token nil}, post-opts {:channel-id nil, :username nil}, output-fn (utils/format-signal-fn)}})
Experimental, subject to change.
 
 Needs `clj-slack`, Ref. <https://github.com/julienXX/clj-slack>.
diff --git a/taoensso.telemere.sockets.html b/taoensso.telemere.sockets.html
index 0572f82..0a63d39 100644
--- a/taoensso.telemere.sockets.html
+++ b/taoensso.telemere.sockets.html
@@ -1,6 +1,6 @@
 
-taoensso.telemere.sockets documentation

taoensso.telemere.sockets

Basic TCP/UDP socket handlers.
+taoensso.telemere.sockets documentation

taoensso.telemere.sockets

Basic TCP/UDP socket handlers.
 

handler:tcp-socket

clj

(handler:tcp-socket {:keys [socket-opts output-fn], :or {output-fn (utils/format-signal-fn)}})
Experimental, subject to change.
 
 Returns a signal handler that:
@@ -20,7 +20,8 @@ Options:
 Limitations:
   - Failed writes will be retried only once.
   - Writes lock on a single underlying socket, so IO won't benefit from adding
-    extra handler threads. Let me know if there's demand for socket pooling.

handler:udp-socket

clj

(handler:udp-socket {:keys [socket-opts output-fn truncation-warning-fn], :or {socket-opts {:max-packet-bytes 512}, output-fn (utils/format-signal-fn)}})
Experimental, subject to change. Feedback welcome!
+    extra handler threads. Let me know if there's demand for socket pooling.

handler:udp-socket

clj

(handler:udp-socket {:keys [socket-opts output-fn truncation-warning-fn], :or {socket-opts {:max-packet-bytes 512}, output-fn (utils/format-signal-fn)}})
Highly experimental, subject to change.
+Feedback very welcome!
 
 Returns a signal handler that:
   - Takes a Telemere signal (map).
diff --git a/taoensso.telemere.streams.html b/taoensso.telemere.streams.html
index 81d9870..327bd78 100644
--- a/taoensso.telemere.streams.html
+++ b/taoensso.telemere.streams.html
@@ -1,6 +1,6 @@
 
-taoensso.telemere.streams documentation

taoensso.telemere.streams

Intake support for standard stream/s -> Telemere.
+taoensso.telemere.streams documentation

taoensso.telemere.streams

Intake support for standard stream/s -> Telemere.
 

check-err-intake

clj

(check-err-intake)
Returns {:keys [sending->telemere? telemere-receiving?]}.
 

check-out-intake

clj

(check-out-intake)
Returns {:keys [sending->telemere? telemere-receiving?]}.
 

streams->reset!

clj

(streams->reset!)
Experimental, subject to change.
diff --git a/taoensso.telemere.timbre.cljs.html b/taoensso.telemere.timbre.cljs.html
index 8532415..bc8ba9c 100644
--- a/taoensso.telemere.timbre.cljs.html
+++ b/taoensso.telemere.timbre.cljs.html
@@ -1,6 +1,6 @@
 
-taoensso.telemere.timbre documentation

taoensso.telemere.timbre

Main Timbre macros, reimplemented on top of Telemere.
+taoensso.telemere.timbre documentation

taoensso.telemere.timbre

Main Timbre macros, reimplemented on top of Telemere.
 Intended to help ease migration from Timbre to Telemere.

set-min-level!

clj

cljs

(set-min-level! min-level)
Prefer `telemere/set-min-level!`.
 

shutdown-appenders!

clj

cljs

(shutdown-appenders!)
Prefer `telemere/stop-handlers!`.
 
\ No newline at end of file diff --git a/taoensso.telemere.timbre.html b/taoensso.telemere.timbre.html index 4e80b51..7d6e263 100644 --- a/taoensso.telemere.timbre.html +++ b/taoensso.telemere.timbre.html @@ -1,6 +1,6 @@ -taoensso.telemere.timbre documentation

taoensso.telemere.timbre

Main Timbre macros, reimplemented on top of Telemere.
+taoensso.telemere.timbre documentation

taoensso.telemere.timbre

Main Timbre macros, reimplemented on top of Telemere.
 Intended to help ease migration from Timbre to Telemere.

debug

macro

clj

(debug & args)
Prefer `telemere/log!`, etc.
 

debugf

macro

clj

(debugf & args)
Prefer `telemere/log!`, etc.
 

error

macro

clj

(error & args)
Prefer `telemere/log!`, etc.
diff --git a/taoensso.telemere.tools-logging.html b/taoensso.telemere.tools-logging.html
index 58044c4..b73b43b 100644
--- a/taoensso.telemere.tools-logging.html
+++ b/taoensso.telemere.tools-logging.html
@@ -1,6 +1,6 @@
 
-taoensso.telemere.tools-logging documentation

taoensso.telemere.tools-logging

Intake support for `tools.logging` -> Telemere.
+taoensso.telemere.tools-logging documentation

taoensso.telemere.tools-logging

Intake support for `tools.logging` -> Telemere.
 Telemere will attempt to load this ns automatically when possible.
 
 Naming conventions:
diff --git a/taoensso.telemere.utils.cljs.html b/taoensso.telemere.utils.cljs.html
index edc3ed3..437d33c 100644
--- a/taoensso.telemere.utils.cljs.html
+++ b/taoensso.telemere.utils.cljs.html
@@ -1,6 +1,6 @@
 
-taoensso.telemere.utils documentation

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.
+taoensso.telemere.utils documentation

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.
 

error-signal?

clj

cljs

(error-signal? signal)
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.

format-error-fn

clj

cljs

(format-error-fn)(format-error-fn {:as _opts})
Experimental, subject to change.
@@ -33,12 +33,18 @@ Options:
   `:preamble-fn`   - (fn [signal]) => signal preamble string.
   `:content-fn`    - (fn [signal]) => signal content  string.
 
-See also `pr-signal-fn` for machine-readable output.

js-console-logger

cljs

(js-console-logger level)
Returns JavaScript console logger to match given signal level:
+See also `pr-signal-fn` for machine-readable output.

hex-uid-fn

clj

cljs

(hex-uid-fn)(hex-uid-fn {:keys [secure? root-len child-len], :or {root-len 32, child-len 16}})
Experimental, subject to change.
+Returns a (fn hex-uid [root?]) that returns a random hex-style uid string like:
+  "05039666eb9dc3206475f44ab9f3d843" - 128 bit (32 char)     root         uid
+  "721fcef639a51513"                 - 64  bit (16 char) non-root (child) uid

js-console-logger

cljs

(js-console-logger level)
Returns JavaScript console logger to match given signal level:
   `:trace` -> `js/console.trace`,
   `:error` -> `js/console.error`, etc.
 
 Defaults to `js.console.log` for unmatched signal levels.
-NB: assumes that `js/console` exists, handler constructors should check first!

newline

clj

cljs

added in Encore v3.68.0 (2023-09-25)

Single system newline
+NB: assumes that `js/console` exists, handler constructors should check first!

nano-uid-fn

clj

cljs

(nano-uid-fn)(nano-uid-fn {:keys [secure? root-len child-len], :or {root-len 21, child-len 10}})
Experimental, subject to change.
+Returns a (fn nano-uid [root?]) that returns a random nano-style uid string like:
+  "r76-B8LoIPs5lBG1_Uhdy" - 126 bit (21 char)     root         uid
+  "tMEYoZH0K-"            - 60  bit (10 char) non-root (child) uid

newline

clj

cljs

added in Encore v3.68.0 (2023-09-25)

Single system newline
 

pr-edn

clj

cljs

(pr-edn x)
Prints given arg to an edn string readable with `read-edn`.
 

pr-json

cljs

added in Encore v3.98.0 (2024-04-08)

(pr-json x)
Returns given Cljs argument as JSON string.
 

pr-signal-fn

clj

cljs

(pr-signal-fn)(pr-signal-fn {:keys [pr-fn incl-kvs? incl-nils? incl-newline? incl-keys], :as opts, :or {pr-fn :edn, incl-newline? true}})
Experimental, subject to change.
@@ -81,4 +87,5 @@ Returns a (fn preamble [signal]) that:
     "2024-03-26T11:14:51.806Z INFO EVENT Hostname taoensso.telemere(2,21) ::ev-id - msg"
 
 Options:
-  `:format-inst-fn` - (fn format [instant]) => string.
\ No newline at end of file + `:format-inst-fn` - (fn format [instant]) => string.

uuid-str

clj

cljs

(uuid-str max-len)(uuid-str)
Returns a random UUID string of given length (max 36).
+Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.
\ No newline at end of file diff --git a/taoensso.telemere.utils.html b/taoensso.telemere.utils.html index 1f3d4d5..5f34e73 100644 --- a/taoensso.telemere.utils.html +++ b/taoensso.telemere.utils.html @@ -1,6 +1,6 @@ -taoensso.telemere.utils documentation

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.
+taoensso.telemere.utils documentation

taoensso.telemere.utils

Misc utils useful for Telemere handlers, middleware, etc.
 

error-signal?

clj

cljs

(error-signal? signal)
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.

file-writer

clj

(file-writer {:keys [file append?], :or {append? true}})
Experimental, subject to change.
@@ -44,9 +44,19 @@ Options:
   `:preamble-fn`   - (fn [signal]) => signal preamble string.
   `:content-fn`    - (fn [signal]) => signal content  string.
 
-See also `pr-signal-fn` for machine-readable output.

host-ip

clj

(host-ip timeout-msecs timeout-val)(host-ip)
Returns cached local host IP address string, or `timeout-val` (default "UnknownHost").
-

hostname

clj

(hostname timeout-msecs timeout-val)(hostname)
Returns cached local hostname string, or `timeout-val` (default "UnknownHost").
-

newline

clj

cljs

added in Encore v3.68.0 (2023-09-25)

Single system newline
+See also `pr-signal-fn` for machine-readable output.

hex-uid-fn

clj

cljs

(hex-uid-fn)(hex-uid-fn {:keys [secure? root-len child-len], :or {root-len 32, child-len 16}})
Experimental, subject to change.
+Returns a (fn hex-uid [root?]) that returns a random hex-style uid string like:
+  "05039666eb9dc3206475f44ab9f3d843" - 128 bit (32 char)     root         uid
+  "721fcef639a51513"                 - 64  bit (16 char) non-root (child) uid

host-info

clj

added in Encore v3.115.0 (2024-08-18)

(host-info)(host-info cache-msecs timeout-msecs fallback-val)(host-info fallback-val)(host-info timeout-msecs fallback-val)
Returns ?{:keys [ip name]} with string vals or `fallback-val` (default nil).
+Arities 0 and 3 are   cached, prefer these!
+Arities 1 and 2 are uncached and intended for advanced users only.

host-ip

clj

added in Encore v3.115.0 (2024-08-18)

(host-ip)(host-ip cache-msecs timeout-msecs fallback-val)(host-ip fallback-val)(host-ip timeout-msecs fallback-val)
Returns local host IP string or `fallback-val` (default nil).
+Arities 0 and 3 are   cached, prefer these!
+Arities 1 and 2 are uncached and intended for advanced users only.

hostname

clj

added in Encore v3.115.0 (2024-08-18)

(hostname)(hostname cache-msecs timeout-msecs fallback-val)(hostname fallback-val)(hostname timeout-msecs fallback-val)
Returns local hostname string or `fallback-val` (default nil).
+Arities 0 and 3 are   cached, prefer these!
+Arities 1 and 2 are uncached and intended for advanced users only.

nano-uid-fn

clj

cljs

(nano-uid-fn)(nano-uid-fn {:keys [secure? root-len child-len], :or {root-len 21, child-len 10}})
Experimental, subject to change.
+Returns a (fn nano-uid [root?]) that returns a random nano-style uid string like:
+  "r76-B8LoIPs5lBG1_Uhdy" - 126 bit (21 char)     root         uid
+  "tMEYoZH0K-"            - 60  bit (10 char) non-root (child) uid

newline

clj

cljs

added in Encore v3.68.0 (2023-09-25)

Single system newline
 

pr-edn

clj

cljs

(pr-edn x)
Prints given arg to an edn string readable with `read-edn`.
 

pr-signal-fn

clj

cljs

(pr-signal-fn)(pr-signal-fn {:keys [pr-fn incl-kvs? incl-nils? incl-newline? incl-keys], :as opts, :or {pr-fn :edn, incl-newline? true}})
Experimental, subject to change.
 Returns a (fn pr [signal]) that:
@@ -107,7 +117,12 @@ Notes:
   - Will retry failed writes once, then drop.
   - Thread safe, locks on single socket stream.
   - Advanced users may want a custom implementation using a connection
-    pool and/or more sophisticated retry semantics, etc.

thread-id

clj

(thread-id)
Returns long id of current thread.
-

thread-info

clj

(thread-info)
Returns {:keys [group name id]} for current thread.
-

thread-name

clj

(thread-name)
Returns string name of current thread.
-
\ No newline at end of file + pool and/or more sophisticated retry semantics, etc.

thread-id

clj

added in Encore v3.115.0 (2024-08-18)

(thread-id)
Returns long id of current `Thread`.
+

thread-info

clj

added in Encore v3.115.0 (2024-08-18)

(thread-info)
Returns {:keys [group name id]} for current `Thread`.
+

thread-name

clj

added in Encore v3.115.0 (2024-08-18)

(thread-name)
Returns string name of current `Thread`.
+

uuid

clj

added in Encore v3.75.0 (2024-01-29)

(uuid)
For Clj: returns a random `java.util.UUID`.
+For Cljs: returns a random UUID string.
+
+Uses strong randomness when possible.
+See also `uuid-str`, `nanoid`, `rand-id-fn`.

uuid-str

clj

cljs

(uuid-str max-len)(uuid-str)
Returns a random UUID string of given length (max 36).
+Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.
\ No newline at end of file