mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-27 21:58:26 +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."
|
||||
|
||||
([] (handler:console nil))
|
||||
([{:keys [output-fn stream]
|
||||
:or {output-fn (utils/format-signal-fn)}}]
|
||||
([{:keys [stream output-fn ]
|
||||
:or
|
||||
{stream :auto
|
||||
output-fn (utils/format-signal-fn)}}]
|
||||
|
||||
(let [stream (case stream :*out* *out*, :*err* *err* stream)
|
||||
error-signal? utils/error-signal?]
|
||||
(let [error-signal? utils/error-signal?]
|
||||
|
||||
(fn a-handler:console
|
||||
([]) ; Shut down (no-op)
|
||||
([signal]
|
||||
(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)]
|
||||
(.write stream (str output))
|
||||
(.flush stream))))))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue