mirror of
https://github.com/taoensso/telemere.git
synced 2026-02-03 03:00:34 +00:00
[new] handler:console: don't cache :*out*/:*err* stream
Support case where `*out*` or `*err*` are being modified after handler is created.
This commit is contained in:
parent
fbb7e38157
commit
f050521fbd
1 changed files with 11 additions and 5 deletions
|
|
@ -27,17 +27,23 @@
|
||||||
Defaults to `*err*` if `utils/error-signal?` is true, and `*out*` otherwise."
|
Defaults to `*err*` if `utils/error-signal?` is true, and `*out*` otherwise."
|
||||||
|
|
||||||
([] (handler:console nil))
|
([] (handler:console nil))
|
||||||
([{:keys [output-fn stream]
|
([{:keys [stream output-fn ]
|
||||||
:or {output-fn (utils/format-signal-fn)}}]
|
:or
|
||||||
|
{stream :auto
|
||||||
|
output-fn (utils/format-signal-fn)}}]
|
||||||
|
|
||||||
(let [stream (case stream :*out* *out*, :*err* *err* stream)
|
(let [error-signal? utils/error-signal?]
|
||||||
error-signal? utils/error-signal?]
|
|
||||||
|
|
||||||
(fn a-handler:console
|
(fn a-handler:console
|
||||||
([]) ; Shut down (no-op)
|
([]) ; Shut down (no-op)
|
||||||
([signal]
|
([signal]
|
||||||
(let [^java.io.Writer stream
|
(let [^java.io.Writer stream
|
||||||
(or stream (if (error-signal? signal) *err* *out*))]
|
(case stream
|
||||||
|
:*out* *out*
|
||||||
|
:*err* *err*
|
||||||
|
:auto (if (error-signal? signal) *err* *out*)
|
||||||
|
stream)]
|
||||||
|
|
||||||
(when-let [output (output-fn signal)]
|
(when-let [output (output-fn signal)]
|
||||||
(.write stream (str output))
|
(.write stream (str output))
|
||||||
(.flush stream))))))))
|
(.flush stream))))))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue