[slf4j-user] SLF4J and JBoss classloaders

Ceki Gulcu listid at qos.ch
Mon Aug 27 22:16:30 CEST 2007


Paul,

Have you read the Jboss' documentation on logging [1]?

In particular, are you doing anything special to modify JBoss' classloading 
behavior?

[1] http://docs.jboss.org/process-guide/en/html/logging.html

Cheers,

Paul Oswald wrote:
> I'm going to give some background information here but skip to the end
> if to see my slf4j specific question...
> 
> I've just recently switched a large J2SE/J2EE application over to the
> slf4j API. I've also been using the log4j backend so far (previously
> it was jdk logging). When the code is running out of container, I pass
> a command line parameter into the applciation to specify the location
> of log4j.properties and the log file location. That works great.
> 
> When deployed inside JBoss 4.0.4.GA or 4.2.1.GA however, The logging
> message seems to come out twice. A normal server log in JBoss looks
> like this:
> 
> 16:41:57,793 INFO  [TomcatDeployer] deploy, ctxPath=/,
> warUrl=.../deploy/jbossweb-tomcat55.sar/ROOT.war/
> 
> However a line from my application looks like this:
> 
> 11:23:46,806 INFO  [STDOUT] 11:23:46,806 WARN
> [ActionDAO$ActionDAOImpl] This is the message
> 
> Note the source is STDOUT, there are two dates and the catagories are
> different. The log4j pattern string for JBoss is: %d{ABSOLUTE} %-5p
> [%c{1}] %m%n You can see that the first three things are coming out
> ok, however when coming from my app, the message also contains a date,
> catagory and caller information. Modifying JBoss' log4j configuration
> only changes the first three. I've found some log4j.property files
> packed inside of jars we are including into our ear file and removed
> them and that changed how the second part was formatted. It's still
> really weird that the category on some lines are both WARN and INFO
> though.
> 
> So this brings me to my actual question: what is the official
> recommendation for using slf4j with JBoss? They do some interesting
> classloading things to isolate jars from each other so I've gotten
> myself throughouly confused. Currently, I'm packing the slf4j api and
> slf4j-log4j backend into my ear file. I am excluding log4j.jar because
> that should be provided by the server. Why does it seemingly go
> through log4j processing twice?  I suppose I'm supposed to include my
> own log4j.properties file in the ear as well? My understanding was
> that applications should leave the logging decisions up to the
> container and therefore not include a config file, but nothing I do to
> log4j.xml in jboss will make the DEBUG level come out.
> 
> Thanks!
> -Paul
> _______________________________________________
> user mailing list
> user at slf4j.org
> http://www.slf4j.org/mailman/listinfo/user

-- 
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch



More information about the slf4j-user mailing list