Hi all,
We are in 2012 and I just spent a few hours trying to display the logs of
an application on GlassFish 3.1.2 and JBoss 7.1.0 (and it's not the first
time in my career). Modules to exclude in one, jars to add in the
WEB-INF/lib on the other... or to exclude. And of course, that's just my
application Log4j logs. If I want to have more logs on javax.ejb I need to
setup a different file in JBoss and another one in GlassFish.
I know javax.util.logging exists in Java SE but nobody tends to use it
(despite GlassFish uses it and JBoss has a brand new logger that wraps
java.util.logging), I know we can happily choose from 10 fashionable brand
new logging frameworks... but really, it's a pain. Every application uses
logs. Every framework uses logs. Every Java EE spec implementation uses
logs. For an application to be portable across app servers, for a
configuration file to be portable across Java EE specs, we should do
something.
I would love to write :
javax.ejb.level = debug
javax.persistence.level = debug
org.weld.level = debug
my.app.level = debug
Add this config file under WEB-INF/classes and don't worry about anything
else... and have the same behavior under GlassFish, JBoss or whatever.
Logging frameworks have been a battle since day one and it's one of the
things that make me feel the Java ecosystem is too complex and is slowly
fading from developers/ops concerns. Gosh, I just want to display some
logs, why do I have to choose from 10 different frameworks and why should I
battle with app server configuration.
Isn't it the role of the Java EE spec to make the other spec agree to a
standard ? And what about logging ?
Antonio