Is the performance impact of a runtime function call so critical for
logging that we need to do this at macro-expansion-time? I would like
for logging to be less magical in its implementation.
Stu
Without looking too deeply, I think this is an issue with AOT
compiling. As the c.c.logging docs note, the logging impl is chosen
at macro-expansion-time. If contrib is fully AOTC'd, then that's when
the logging impl will be chosen. There's an assembla ticket on it:
https://www.assembla.com/spaces/clojure-contrib/tickets/44
On Jan 12, 4:13 am, Timothy Pratley <timothyprat...@gmail.com> wrote:
Hi,
GOSUB raised this on IRC and I'm stumped as to the behavior, can
anyone help shed some light?
In order to reproduce he provided a leiningen
project:http://github.com/ghoseb/test-logging
Now running a REPL from those dependencies (note you can just run
lein
deps; lein repl I am just listing the jars here to show nothing to
do with lein):
~/test-logging/lib$ java -cp
clojure-1.1.0-master-20091231.150150-10.jar:clojure-contrib-1.1.0-
master-20 100111.160148-18.jar:log4j-1.2.14.jar
clojure.main
Clojure 1.1.0-master-SNAPSHOT
user=> (use 'clojure.contrib.logging)
nil
user=> *impl-name*
"java.util.logging"
;;;; log4j was not detected
user=> (import (java.util.logging Logger Level))
java.util.logging.Level
;;;; log4j is on the classpath! furthermore you can set log4j using
(log4j-logger) though you have to switch to the
clojure.contrib.logging namespace because it is private. That seems
to
indicate util.logging was never attached (or it would throw an
exception when trying to attach log4j.
However, when I ran the same test with the latest builds from git:
$ java -cp clojure/clojure.jar:clojure-contrib/clojure-
contrib.jar:test-logging/lib/lo g4j-1.2.14.jar
clojure.main
Clojure 1.2.0-master-SNAPSHOT
user=> (use 'clojure.contrib.logging)
nil
user=> *impl-name*
"org.apache.log4j"
;;;; log4j as expected
Unfortunately I can't find these as snapshots so there seems to be no
lein friendly solution just yet. clojure 1.2.0-master-SNAPSHOT
exists,
but not clojure-contrib 1.2.0-master-SNAPSHOT yet.
So coming back to the issue of why the strange behavior in the first
place... I looked at the git history of c.c.logging and nothing has
changed in there since Aug 19 2009, so I would have thought c.c
1.1.0-master-SNAPSHOT.jar would be current (it only just got
released)
which seems to indicate something in Clojure itself has changed this
behavior.
Does anyone have any thoughts on why this is happening and whether
there is a solution?
Regards,
Tim.
--
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 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