timbre 2025-08-28

I don’t know if this is timbre, but when it is logging larger data structures (malli schema errors), it seems to substitute vectors with #. e.g. :

{:path #,
           :in #,
           :schema
           [:enum #:decode{:json #object[clojure.core$keyword 0x52f41482 "clojure.core$keyword@52f41482"]} :pcs :mm :fl-oz :gallon :cl :quart :kg :dm ...],
           :value :bowl}
is there a way to disable that?

✅ 1

Hi there. Nothing intentional on Timbre’s end that’d do that afaik. But it’d be helpful for debugging if you could provide a specific logging call example.

Hm it does seem to work on another project using timbre, but this is what I am seeing:

(log/error (ex-info "A" {:a {:b {:c {:d {:e [1 2 3]}}}}}))

clojure.lang.ExceptionInfo: A
    a: {:b {:c {#}}}
so some sort of max-level

Ah apologies, seems to be c.t.logging being used

On the second look this does use timbre

Ok so this is Timbre version 6.7.1, it is using pretty-3.3.2, and :

(clj-commons.format.exceptions/format-exception (ex-info "A" {:a {:b {:c {:d {:e [1 2 3]}}}}}))
prints:
"clojure.core/eval    core.clj: 3232
               ...                 
    user/eval15850  REPL Input:     
 clojure.lang.ExceptionInfo: A
     a: {:b {:c {#}}}
 
 "

my other project that works correctly is using timbre 6.2.2 and that one is using io.aviso.exception which doesn’t have this behaviour

Ah I need to change clj-commons.format.exceptions/*print-level* , just a heads up to anyone migrating from 6.2.x to 6.7.x

🙏 2

Came here looking to see if anyone had already worked out what caused this after we upgraded too, really appreciate the debugging and helpful description!

A depenency of started using a different library which has a limit on print depth

yep, I got it, was just saying thanks for all the work 🙂