<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The evils of commons-logging.jar and its ilk</title>
	<atom:link href="http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-evils-of-commons-loggingjar-and-its-ilk</link>
	<description>If you have nothing bad to say, say nothing.</description>
	<lastBuildDate>Wed, 14 Dec 2011 08:51:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Roberto Lo Giacco</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-7834</link>
		<dc:creator>Roberto Lo Giacco</dc:creator>
		<pubDate>Fri, 14 Sep 2007 20:35:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-7834</guid>
		<description>I don&#039;t agree with you: logging configuration depends on deployment team, not on development. What commons loggin achieve is abstracting you (the developer) from the deployment logging framework. It isn&#039;t the solution for ALL problems, but it solves many development problems.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t agree with you: logging configuration depends on deployment team, not on development. What commons loggin achieve is abstracting you (the developer) from the deployment logging framework. It isn&#8217;t the solution for ALL problems, but it solves many development problems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Schneider</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6394</link>
		<dc:creator>Bill Schneider</dc:creator>
		<pubDate>Sat, 18 Jun 2005 08:14:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6394</guid>
		<description>no kidding.  I&#039;ve also suffered because of commons-logging.  I recorded some potential solutions on my blog.</description>
		<content:encoded><![CDATA[<p>no kidding.  I&#8217;ve also suffered because of commons-logging.  I recorded some potential solutions on my blog.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Bloch</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6393</link>
		<dc:creator>Eric Bloch</dc:creator>
		<pubDate>Fri, 27 Aug 2004 18:55:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6393</guid>
		<description>Here here.  commons-logging has caused me days of time at this point.  I hope to see it die soon.

-Eric</description>
		<content:encoded><![CDATA[<p>Here here.  commons-logging has caused me days of time at this point.  I hope to see it die soon.</p>
<p>-Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Costin Manolache</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6392</link>
		<dc:creator>Costin Manolache</dc:creator>
		<pubDate>Sun, 14 Dec 2003 13:38:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6392</guid>
		<description>The reasons commons-logging exists are: JDK logging API is tied into JDK1.4 ( and not very good, but it&#039;s not the only half-bad/half-good API ), there are already plenty of logging implementations ( log4j, logkit, jdk logging, proprietary/custom loggers).  What we want is a common API, to use across jakarta libraries and projects - and unfortunately the Sun API doesn&#039;t fit. 

Tomcat for example may be embedded in various app servers - like Sun reference impl, jboss, etc. Each uses it&#039;s own logging. Just like we don&#039;t want tomcat to have it&#039;s own configuration ( and in 5.0 it uses JMX - so it can use whatever the host is using instead of server.xml ) - we don&#039;t want tomcat to have it&#039;s own logging. 

There are also some implications on sandboxed env, where the webapps don&#039;t actually have the rights to log wherever they want, instead the admin controls all the logging.

Keep in mind commons-logging is an API, and it is supposed to be a &quot;platform&quot; API ( like JDK1.4 logging ). It&#039;s unfortunate JDK1.4 logging didn&#039;t  
work and we had to do commons-logging, but it is  IMO the right solution. Version management and DLL hell is a valid concern, however commons-logging has been pretty stable and backward compatible, and I don&#039;t think it creates major problems by its own.</description>
		<content:encoded><![CDATA[<p>The reasons commons-logging exists are: JDK logging API is tied into JDK1.4 ( and not very good, but it&#8217;s not the only half-bad/half-good API ), there are already plenty of logging implementations ( log4j, logkit, jdk logging, proprietary/custom loggers).  What we want is a common API, to use across jakarta libraries and projects &#8211; and unfortunately the Sun API doesn&#8217;t fit. </p>
<p>Tomcat for example may be embedded in various app servers &#8211; like Sun reference impl, jboss, etc. Each uses it&#8217;s own logging. Just like we don&#8217;t want tomcat to have it&#8217;s own configuration ( and in 5.0 it uses JMX &#8211; so it can use whatever the host is using instead of server.xml ) &#8211; we don&#8217;t want tomcat to have it&#8217;s own logging. </p>
<p>There are also some implications on sandboxed env, where the webapps don&#8217;t actually have the rights to log wherever they want, instead the admin controls all the logging.</p>
<p>Keep in mind commons-logging is an API, and it is supposed to be a &#8220;platform&#8221; API ( like JDK1.4 logging ). It&#8217;s unfortunate JDK1.4 logging didn&#8217;t<br />
work and we had to do commons-logging, but it is  IMO the right solution. Version management and DLL hell is a valid concern, however commons-logging has been pretty stable and backward compatible, and I don&#8217;t think it creates major problems by its own.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruce Snyder</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6391</link>
		<dc:creator>Bruce Snyder</dc:creator>
		<pubDate>Wed, 17 Sep 2003 00:15:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6391</guid>
		<description>ClassWorlds (http://classworlds.codehaus.org/) is one solution to this jar hell. I&#039;m not sure why vendors don&#039;t at least take the ClassWorlds approach of setting up separate realms or zones that each use its own ClassLoader.</description>
		<content:encoded><![CDATA[<p>ClassWorlds (<a href="http://classworlds.codehaus.org/" rel="nofollow">http://classworlds.codehaus.org/</a>) is one solution to this jar hell. I&#8217;m not sure why vendors don&#8217;t at least take the ClassWorlds approach of setting up separate realms or zones that each use its own ClassLoader.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6390</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 13 Aug 2003 15:59:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6390</guid>
		<description>Version management is one of the most lacking aspects of Java.  If Java is going to copy anything from .NET, please add some competent version management before tackling things like &quot;foreach&quot; syntax sugar.

Every jar should have a set of formal and *required* version attributes, as well as a required set of declared jar+version dependencies.  The runtime should enforce versioning requirements.  This should allow multiple versions of the same jars to co-exist in a single classpath and classloader.  Until this happens we will have to resort to a combination of finger-crossing/hail-Mary&#039;s and/or kludges (like re-writing the dependent package names) to have a deployment free of versioning bugs.</description>
		<content:encoded><![CDATA[<p>Version management is one of the most lacking aspects of Java.  If Java is going to copy anything from .NET, please add some competent version management before tackling things like &#8220;foreach&#8221; syntax sugar.</p>
<p>Every jar should have a set of formal and *required* version attributes, as well as a required set of declared jar+version dependencies.  The runtime should enforce versioning requirements.  This should allow multiple versions of the same jars to co-exist in a single classpath and classloader.  Until this happens we will have to resort to a combination of finger-crossing/hail-Mary&#8217;s and/or kludges (like re-writing the dependent package names) to have a deployment free of versioning bugs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6389</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 13 Aug 2003 09:28:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6389</guid>
		<description>IMHO you are blaming the wrong kid in this case. The logging mess in all the app servers out there is because they are not able to separate server/container and application classloaders in a way not causing conflicts with different versions of the same library.</description>
		<content:encoded><![CDATA[<p>IMHO you are blaming the wrong kid in this case. The logging mess in all the app servers out there is because they are not able to separate server/container and application classloaders in a way not causing conflicts with different versions of the same library.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aleksander Slominski</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6388</link>
		<dc:creator>Aleksander Slominski</dc:creator>
		<pubDate>Mon, 11 Aug 2003 23:25:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6388</guid>
		<description>One possible solution to this is to have easy to embed into your package structure logger class. i have written such utility called MicroLogger freely available so you can tweak it to your logging needs: http://freshmeat.net/releases/131068/

Addressing comment by Daryl Oidy: i agree that requiring use JDK 1.4+ sometimes is not possible so i made sure that MicroLoggers works very well in JDK 1.2+ and has API as similar to JDK 1.4 as possible to facilitate migration.

BTW: for some reasons that i am yet to grasp commons logging jar is shipped with Java source code that can confuse some IDEs: http://forum.omnicore.com/showthread.php?s=&amp;threadid=1341 - one would anybody on earth put .java files with .class files in JAR?! or it is just me unlucky enough to get this &quot;special&quot; JAR?

thanks,

alek</description>
		<content:encoded><![CDATA[<p>One possible solution to this is to have easy to embed into your package structure logger class. i have written such utility called MicroLogger freely available so you can tweak it to your logging needs: <a href="http://freshmeat.net/releases/131068/" rel="nofollow">http://freshmeat.net/releases/131068/</a></p>
<p>Addressing comment by Daryl Oidy: i agree that requiring use JDK 1.4+ sometimes is not possible so i made sure that MicroLoggers works very well in JDK 1.2+ and has API as similar to JDK 1.4 as possible to facilitate migration.</p>
<p>BTW: for some reasons that i am yet to grasp commons logging jar is shipped with Java source code that can confuse some IDEs: <a href="http://forum.omnicore.com/showthread.php?s=&#038;threadid=1341" rel="nofollow">http://forum.omnicore.com/showthread.php?s=&#038;threadid=1341</a> &#8211; one would anybody on earth put .java files with .class files in JAR?! or it is just me unlucky enough to get this &#8220;special&#8221; JAR?</p>
<p>thanks,</p>
<p>alek</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Minutello</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6387</link>
		<dc:creator>Nick Minutello</dc:creator>
		<pubDate>Mon, 11 Aug 2003 21:01:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6387</guid>
		<description>Crikey, a technical discussion at bileBlog??

&#124;
&#124; I can&#039;t think of a single situation whereby I&#039;d 
&#124; want my logging output to be mixed in with the 
&#124; appserver&#039;s messages.
&#124;

Except when you want WebLogic&#039;s &quot;WARNING : JDBC Connection leak&quot; messages interleaved with your application debug logging, so you can work out where you are leaking....

-Nick</description>
		<content:encoded><![CDATA[<p>Crikey, a technical discussion at bileBlog??</p>
<p>|<br />
| I can&#8217;t think of a single situation whereby I&#8217;d<br />
| want my logging output to be mixed in with the<br />
| appserver&#8217;s messages.<br />
|</p>
<p>Except when you want WebLogic&#8217;s &#8220;WARNING : JDBC Connection leak&#8221; messages interleaved with your application debug logging, so you can work out where you are leaking&#8230;.</p>
<p>-Nick</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cameron Purdy</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6386</link>
		<dc:creator>Cameron Purdy</dc:creator>
		<pubDate>Mon, 11 Aug 2003 12:01:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6386</guid>
		<description>Jive has other dependencies, such as Coherence for clustering, but they package it all in a way that is friendly for the IT pro that is installing their software. (We use Jive extensively, and we love it, and we would still love it even if they weren&#039;t a Tangosol OEM.)

It takes a lot of work to make software usable, and it takes ten times that much work to make it easily installable, configurable and manageable (and in Jive&#039;s case: customizable too). Companies like Jive build their reputation on that ease, and that&#039;s why people buy their software instead of using the free open source equivalents.</description>
		<content:encoded><![CDATA[<p>Jive has other dependencies, such as Coherence for clustering, but they package it all in a way that is friendly for the IT pro that is installing their software. (We use Jive extensively, and we love it, and we would still love it even if they weren&#8217;t a Tangosol OEM.)</p>
<p>It takes a lot of work to make software usable, and it takes ten times that much work to make it easily installable, configurable and manageable (and in Jive&#8217;s case: customizable too). Companies like Jive build their reputation on that ease, and that&#8217;s why people buy their software instead of using the free open source equivalents.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Carreira</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6385</link>
		<dc:creator>Jason Carreira</dc:creator>
		<pubDate>Mon, 11 Aug 2003 11:00:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6385</guid>
		<description>Craig, that&#039;s well and good in theory, but unless you move your classes to something like com.foo.mypackage.v1.MyClass you get the problem of the app server having the same class in the class path (package and class name remain the same) from different versions. Then you access the added classes in v2.0 and it breaks, because the v2.0 class it uses is not found, because the v1.0 class was found first.</description>
		<content:encoded><![CDATA[<p>Craig, that&#8217;s well and good in theory, but unless you move your classes to something like com.foo.mypackage.v1.MyClass you get the problem of the app server having the same class in the class path (package and class name remain the same) from different versions. Then you access the added classes in v2.0 and it breaks, because the v2.0 class it uses is not found, because the v1.0 class was found first.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Heighton</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6384</link>
		<dc:creator>Craig Heighton</dc:creator>
		<pubDate>Mon, 11 Aug 2003 09:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6384</guid>
		<description>Why should the host application e.g. tomcat provide access to it&#039;s own logging mechanism. It should be down the people doing the deployments to manage whether they want a shared commons jar or one per web-app. the apps should not have access to the hosts apps Classloader in this way. And as for versions ALL jars should have a obvious version number and standard perfix. e.g commons-logging-1.0.jar. This allows you to search your classpath for the prefix and find out what versions are around at a glance. 

Dll hell comes from badly named libs and enormous search paths. NOT from shared common access code as you suggest.</description>
		<content:encoded><![CDATA[<p>Why should the host application e.g. tomcat provide access to it&#8217;s own logging mechanism. It should be down the people doing the deployments to manage whether they want a shared commons jar or one per web-app. the apps should not have access to the hosts apps Classloader in this way. And as for versions ALL jars should have a obvious version number and standard perfix. e.g commons-logging-1.0.jar. This allows you to search your classpath for the prefix and find out what versions are around at a glance. </p>
<p>Dll hell comes from badly named libs and enormous search paths. NOT from shared common access code as you suggest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daryl Oidy</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6383</link>
		<dc:creator>Daryl Oidy</dc:creator>
		<pubDate>Mon, 11 Aug 2003 03:22:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6383</guid>
		<description>Well, it&#039;s only in JDK 1.4, so it doesn&#039;t help you if you need to run on older JVMs. And some people would just rather stick with the logging classes they already know and love.</description>
		<content:encoded><![CDATA[<p>Well, it&#8217;s only in JDK 1.4, so it doesn&#8217;t help you if you need to run on older JVMs. And some people would just rather stick with the logging classes they already know and love.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Lea</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6382</link>
		<dc:creator>Keith Lea</dc:creator>
		<pubDate>Mon, 11 Aug 2003 02:54:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6382</guid>
		<description>Why doesn&#039;t anyone use the JDK&#039;s logging facilities? Is it not a standard, pluggable API? (I&#039;m really asking; I&#039;m not being sarcastic or hostile.)</description>
		<content:encoded><![CDATA[<p>Why doesn&#8217;t anyone use the JDK&#8217;s logging facilities? Is it not a standard, pluggable API? (I&#8217;m really asking; I&#8217;m not being sarcastic or hostile.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: martin</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6381</link>
		<dc:creator>martin</dc:creator>
		<pubDate>Mon, 11 Aug 2003 02:33:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6381</guid>
		<description>More remedies please?</description>
		<content:encoded><![CDATA[<p>More remedies please?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lowem</title>
		<link>http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/comment-page-1/#comment-6380</link>
		<dc:creator>lowem</dc:creator>
		<pubDate>Mon, 11 Aug 2003 02:00:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=259#comment-6380</guid>
		<description>Ah, this brings back memories of the good old weblogic.jar. Ah yes. &quot;DLL Hell&quot;, say hello to &quot;JAR Hell&quot;.</description>
		<content:encoded><![CDATA[<p>Ah, this brings back memories of the good old weblogic.jar. Ah yes. &#8220;DLL Hell&#8221;, say hello to &#8220;JAR Hell&#8221;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

