Hi folks,
I'm trying to integrate log4j2 (and its `MapMessage`) with
tools.logging. Everything was going great until the moment I had to
depend on this little library, from another project. Everything would
work on the REPL, but `lein check` was failing with the most bizarre
IOException (Stream closed) during compilation! I reported/asked about
this to `duct-core` initially [1] (as it was a duct-based project), but
it turns out that this doesn't really relate to duct. James
(@weavejester) was kind enough to attempt to explain this, and he
basically concluded that (quoting straight from the ticket):
1. The Clojure classloader opens a stream to read
|com.elcom.tools.logging.structured| from the jar.
2. The |clojure.tools.logging| namespace is then required and loaded.
3. Log4j is triggered from |clojure.tools.logging|, which then tries to
read from the elcom-tools jar again, probably to load in your custom
logging class or properties file.
4. This second read appears to close the first stream to
|com.elcom.tools.logging.structured|, causing an IO error from the
still-open reader.
Note that this only occurs when the classloader is trying to load from a
jar. The moment the files are cached in the |target| directory,
everything works fine.
Reproducing this requires that you download the two zips from the link
below, install `elcom-tools` locally, and then doing `lein check` on
`elcom-auth`.
I do have a workaround at this point, but at the same time, I'd love to
understand what exactly is happening here. Many thanks in advance for
any insights...
Kind regards,
Dimitris
[1]: https://github.com/duct-framework/core/issues/37
<https://github.com/duct-framework/core/issues/37>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/9a7c6d95-80f3-cb2a-5f3b-13c05ee97705%40gmail.com.