<?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: Clogging revisited</title>
	<atom:link href="http://www.bileblog.org/2004/07/clogging-revisited/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bileblog.org/2004/07/clogging-revisited/</link>
	<description>If you have nothing bad to say, say nothing.</description>
	<pubDate>Tue,  9 Mar 2010 23:37:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: New Adventures In Software &#187; The Tragedy of the Jakarta Commons</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-7502</link>
		<dc:creator>New Adventures In Software &#187; The Tragedy of the Jakarta Commons</dc:creator>
		<pubDate>Thu, 28 Jun 2007 23:01:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-7502</guid>
		<description>[...] and its Jakarta project, but I&#8217;ve never been a fan of the Commons libraries. Aside from the questionable premise of Commons Logging, it was an unpleasant encounter with Commons Math that inspired the domain name [...]</description>
		<content:encoded><![CDATA[<p>[...] and its Jakarta project, but I&#8217;ve never been a fan of the Commons libraries. Aside from the questionable premise of Commons Logging, it was an unpleasant encounter with Commons Math that inspired the domain name [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-3006</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Thu, 27 Jul 2006 23:53:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-3006</guid>
		<description>What an idiot who wrote this article. Just because you don't know the first thing about enterprise development you decide to bash a useful component from Apache. 
lol @ you fuckin loser</description>
		<content:encoded><![CDATA[<p>What an idiot who wrote this article. Just because you don&#8217;t know the first thing about enterprise development you decide to bash a useful component from Apache.<br />
lol @ you fuckin loser</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Al Maw</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-3005</link>
		<dc:creator>Al Maw</dc:creator>
		<pubDate>Mon, 13 Sep 2004 09:45:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-3005</guid>
		<description>Clogging is an abomination because of classloader issues in webapp environments.

Go read this: http://www.qos.ch/logging/thinkAgain.html
(In particular the links half way down).

Basically, the commons-logging class discovery isn't as clever as the JBoss/Tomcat/&lt;insert servlet container of your choice here&gt; classloaders, resulting in ClassNotFound exceptions all over the shop.

If you're going to tie someone to using commons-logging, you may as well tie them to using log4j, which at least actually *works*, without needing you to get your head around the interactions between three different classloaders.</description>
		<content:encoded><![CDATA[<p>Clogging is an abomination because of classloader issues in webapp environments.</p>
<p>Go read this: <a href="http://www.qos.ch/logging/thinkAgain.html" rel="nofollow">http://www.qos.ch/logging/thinkAgain.html</a><br />
(In particular the links half way down).</p>
<p>Basically, the commons-logging class discovery isn&#8217;t as clever as the JBoss/Tomcat/<insert servlet container of your choice here> classloaders, resulting in ClassNotFound exceptions all over the shop.</p>
<p>If you&#8217;re going to tie someone to using commons-logging, you may as well tie them to using log4j, which at least actually *works*, without needing you to get your head around the interactions between three different classloaders.</insert></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Biggus Dickus</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-3004</link>
		<dc:creator>Biggus Dickus</dc:creator>
		<pubDate>Mon, 02 Aug 2004 10:04:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-3004</guid>
		<description>Now I know why you all need logging. It's fucking impossible to understand anything you all say so you need to keep it to look at it all again later.

"Why not use clogging and pass the output to log4j which then sends it on to the JDK logger which uses callbacks to log4j to format the output and then gets clogging to throw exceptions for the JVM to catch and pass to the original app so that it can then log it via clogging......"</description>
		<content:encoded><![CDATA[<p>Now I know why you all need logging. It&#8217;s fucking impossible to understand anything you all say so you need to keep it to look at it all again later.</p>
<p>&#8220;Why not use clogging and pass the output to log4j which then sends it on to the JDK logger which uses callbacks to log4j to format the output and then gets clogging to throw exceptions for the JVM to catch and pass to the original app so that it can then log it via clogging&#8230;&#8230;&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henri Yandell</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-3003</link>
		<dc:creator>Henri Yandell</dc:creator>
		<pubDate>Sun, 01 Aug 2004 16:43:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-3003</guid>
		<description>&lt;code&gt;
public class Debug {&lt;br&gt;&lt;br&gt;
&#160;&#160;&#160;&#160;public static boolean DEBUG = Boolean.getBoolean("org.group.Product.DEBUG");&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
&lt;/code&gt;
   
To be honest, I don't see why logging is needed for anyone but the developers. The version that is released should not contain logging, it should be removed from the development version at release time.

If only the developers  need it, they can use whatever system they want. It won't matter as it won't get near the users. The only time users should have logging is if the developers are the users, or if the users goto CVS and become developers.</description>
		<content:encoded><![CDATA[<p><code><br />
public class Debug {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;public static boolean DEBUG = Boolean.getBoolean(&#8221;org.group.Product.DEBUG&#8221;);<br />
}</p>
<p></code></p>
<p>To be honest, I don&#8217;t see why logging is needed for anyone but the developers. The version that is released should not contain logging, it should be removed from the development version at release time.</p>
<p>If only the developers  need it, they can use whatever system they want. It won&#8217;t matter as it won&#8217;t get near the users. The only time users should have logging is if the developers are the users, or if the users goto CVS and become developers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: van</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-3002</link>
		<dc:creator>van</dc:creator>
		<pubDate>Fri, 30 Jul 2004 22:16:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-3002</guid>
		<description>To show your loyalty to log4j please make OSWorkflow/Webwork/whatever OS stuff you work on depends on log4j only, force all of us to add additional ~345kb crap to every application using them.</description>
		<content:encoded><![CDATA[<p>To show your loyalty to log4j please make OSWorkflow/Webwork/whatever OS stuff you work on depends on log4j only, force all of us to add additional ~345kb crap to every application using them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-3001</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Fri, 30 Jul 2004 07:03:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-3001</guid>
		<description>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;</description>
		<content:encoded><![CDATA[<table>
<tr>
<td><b></b></td>
</tr>
</table>
]]></content:encoded>
	</item>
	<item>
		<title>By: jw</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-3000</link>
		<dc:creator>jw</dc:creator>
		<pubDate>Thu, 29 Jul 2004 04:53:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-3000</guid>
		<description>How about picking one of them? How's that for an answer? If you want jdk14 logging and no deps, pick jdk14 logging. If you want log4j features and don't mind the extra dependency: pick log4j. 

On the other hand, if you're a dimwit fapping to commons-*, you pick commons-*, rant and rave about how good it is, invent/embrace their marketing mantras such as pluggable logging and smile at the people you think are laughing with you.</description>
		<content:encoded><![CDATA[<p>How about picking one of them? How&#8217;s that for an answer? If you want jdk14 logging and no deps, pick jdk14 logging. If you want log4j features and don&#8217;t mind the extra dependency: pick log4j. </p>
<p>On the other hand, if you&#8217;re a dimwit fapping to commons-*, you pick commons-*, rant and rave about how good it is, invent/embrace their marketing mantras such as pluggable logging and smile at the people you think are laughing with you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sp</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2999</link>
		<dc:creator>sp</dc:creator>
		<pubDate>Wed, 28 Jul 2004 19:46:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2999</guid>
		<description>What I am saying here is that a library or framework can use commons-logging and later when you use that library with your program, that uses log4j or java.util.logging for logging, you can configure commons-logging to use the same logging implementation as your program.

By using the same logging implementation you have one configuration for all the code.

Where is the problem with the above statement? Do you have another solution?

Please read and THINK before you answer...



jw wrote:

"I think that commons-logging is necessary for open source projects that want to use logging and they don't want to enforce their users to use a particular logging implementation."

commons-logging _is_ a logging implementation and a dependency you idiot!</description>
		<content:encoded><![CDATA[<p>What I am saying here is that a library or framework can use commons-logging and later when you use that library with your program, that uses log4j or java.util.logging for logging, you can configure commons-logging to use the same logging implementation as your program.</p>
<p>By using the same logging implementation you have one configuration for all the code.</p>
<p>Where is the problem with the above statement? Do you have another solution?</p>
<p>Please read and THINK before you answer&#8230;</p>
<p>jw wrote:</p>
<p>&#8220;I think that commons-logging is necessary for open source projects that want to use logging and they don&#8217;t want to enforce their users to use a particular logging implementation.&#8221;</p>
<p>commons-logging _is_ a logging implementation and a dependency you idiot!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: spammy</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2998</link>
		<dc:creator>spammy</dc:creator>
		<pubDate>Wed, 28 Jul 2004 14:13:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2998</guid>
		<description>"How exactly do you propose tools/libraries that are intended for use in larger application (e.g. OSWorkflow) handle their logging?"

What a wreckless piece of null bucket code OSworkflow is.  We tried using it for a year after our own guys added to their bad design by writing equally dumb code.  Anyone who uses OSworkflow could do themselves a flavor and write then own stuff.  That's what we had to do.  Their serialization model sux.  It's so general purpose that its good for nada.</description>
		<content:encoded><![CDATA[<p>&#8220;How exactly do you propose tools/libraries that are intended for use in larger application (e.g. OSWorkflow) handle their logging?&#8221;</p>
<p>What a wreckless piece of null bucket code OSworkflow is.  We tried using it for a year after our own guys added to their bad design by writing equally dumb code.  Anyone who uses OSworkflow could do themselves a flavor and write then own stuff.  That&#8217;s what we had to do.  Their serialization model sux.  It&#8217;s so general purpose that its good for nada.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rossi</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2997</link>
		<dc:creator>Rossi</dc:creator>
		<pubDate>Wed, 28 Jul 2004 11:35:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2997</guid>
		<description>Why Sun didn't just use log4j escapes me.  Hell, they're using Apache Crimson to do the XML parsing.  Why not just use log4j instead of inventing an inferior implementation?

Yeah, yeah, licensing, licensing, licensing.

Whatever.</description>
		<content:encoded><![CDATA[<p>Why Sun didn&#8217;t just use log4j escapes me.  Hell, they&#8217;re using Apache Crimson to do the XML parsing.  Why not just use log4j instead of inventing an inferior implementation?</p>
<p>Yeah, yeah, licensing, licensing, licensing.</p>
<p>Whatever.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jh</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2996</link>
		<dc:creator>jh</dc:creator>
		<pubDate>Wed, 28 Jul 2004 10:33:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2996</guid>
		<description>So Hani,
As usual, you're long on criticism but short on solutions...

At work we abandoned all direct use of clogging, and use Log4j directly, because we want to use it's advanced features that clogging doesn't support, and also because we realized the sillyness of not just sticking with a specific logger...  

How exactly do you propose tools/libraries that are intended for use in larger application (e.g. OSWorkflow) handle their logging?</description>
		<content:encoded><![CDATA[<p>So Hani,<br />
As usual, you&#8217;re long on criticism but short on solutions&#8230;</p>
<p>At work we abandoned all direct use of clogging, and use Log4j directly, because we want to use it&#8217;s advanced features that clogging doesn&#8217;t support, and also because we realized the sillyness of not just sticking with a specific logger&#8230;  </p>
<p>How exactly do you propose tools/libraries that are intended for use in larger application (e.g. OSWorkflow) handle their logging?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Blue Buddha</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2995</link>
		<dc:creator>The Blue Buddha</dc:creator>
		<pubDate>Wed, 28 Jul 2004 06:02:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2995</guid>
		<description>I remember when an ex-colleague first got his hands on log4j and almost soiled himself with excitement, proclaiming that someone had "finally thought outside the box about logging."

For fucks sake get a life - it's just logging, not a cure for cancer.

Give me System.out or give me death...</description>
		<content:encoded><![CDATA[<p>I remember when an ex-colleague first got his hands on log4j and almost soiled himself with excitement, proclaiming that someone had &#8220;finally thought outside the box about logging.&#8221;</p>
<p>For fucks sake get a life - it&#8217;s just logging, not a cure for cancer.</p>
<p>Give me System.out or give me death&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kent Rasmussen</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2994</link>
		<dc:creator>Kent Rasmussen</dc:creator>
		<pubDate>Wed, 28 Jul 2004 05:26:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2994</guid>
		<description>Log4j might generate exceptions too, depending on how you chose to format the output.

If you choose that the output should contain classnames or linenumbers, exceptions wille be generated. Actually the javadocs of log4j are warning against the performanceiomplications of using classnames or linenumbers.

A good alternative is instead to output the name of the logger (which almost always is the same as the classname)</description>
		<content:encoded><![CDATA[<p>Log4j might generate exceptions too, depending on how you chose to format the output.</p>
<p>If you choose that the output should contain classnames or linenumbers, exceptions wille be generated. Actually the javadocs of log4j are warning against the performanceiomplications of using classnames or linenumbers.</p>
<p>A good alternative is instead to output the name of the logger (which almost always is the same as the classname)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Loke</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2993</link>
		<dc:creator>Loke</dc:creator>
		<pubDate>Wed, 28 Jul 2004 04:20:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2993</guid>
		<description>The creation of the Throwable is only done when a handler is trying to read the classname or the method of the caller that sent the logging message and the LogRecord doesn't already have this information.

Note: there is no other way of specifying this information (short of including it verbatim in the log call, which can be done through the Logger.logrb() method for example). If log4j doesn't do this, then it means that log4j cannot include the name of the calling method in the log messages and therefore it sucks.

So, there are two ways of getting rid of the creation of the Throwable: 1) Don't include the calling class or method in the output or 2) include that information yourself in the call to the log method when you log performance sensitive sections of the code.

Is there a better way to do it?</description>
		<content:encoded><![CDATA[<p>The creation of the Throwable is only done when a handler is trying to read the classname or the method of the caller that sent the logging message and the LogRecord doesn&#8217;t already have this information.</p>
<p>Note: there is no other way of specifying this information (short of including it verbatim in the log call, which can be done through the Logger.logrb() method for example). If log4j doesn&#8217;t do this, then it means that log4j cannot include the name of the calling method in the log messages and therefore it sucks.</p>
<p>So, there are two ways of getting rid of the creation of the Throwable: 1) Don&#8217;t include the calling class or method in the output or 2) include that information yourself in the call to the log method when you log performance sensitive sections of the code.</p>
<p>Is there a better way to do it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fatal Logger</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2992</link>
		<dc:creator>Fatal Logger</dc:creator>
		<pubDate>Wed, 28 Jul 2004 04:13:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2992</guid>
		<description>commons-logging is an absurdity as it does not make sense anyway.

If you use 'commons' it means you are using basic API calls and it's a breeze to change from one API to another via search/replace in your IDE or a hand crafted shell/python/perl (or a Ant replaceregexp filter if you're not comfortable with the later scripts language)

Switch at runtime ? yeah right. How cool is it to switch your logging package ? Frankly that's useless.

Why ? Well, in most case you can get the most of a logging package by using its features, should it be NDC or specific appenders you won't find anywhere else. In that case you're tied to the API anyway. So stick with it.

Use log4j and stick to it. Period.</description>
		<content:encoded><![CDATA[<p>commons-logging is an absurdity as it does not make sense anyway.</p>
<p>If you use &#8216;commons&#8217; it means you are using basic API calls and it&#8217;s a breeze to change from one API to another via search/replace in your IDE or a hand crafted shell/python/perl (or a Ant replaceregexp filter if you&#8217;re not comfortable with the later scripts language)</p>
<p>Switch at runtime ? yeah right. How cool is it to switch your logging package ? Frankly that&#8217;s useless.</p>
<p>Why ? Well, in most case you can get the most of a logging package by using its features, should it be NDC or specific appenders you won&#8217;t find anywhere else. In that case you&#8217;re tied to the API anyway. So stick with it.</p>
<p>Use log4j and stick to it. Period.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tiago Silveira</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2991</link>
		<dc:creator>Tiago Silveira</dc:creator>
		<pubDate>Wed, 28 Jul 2004 03:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2991</guid>
		<description>&lt;p&gt;&lt;em&gt;
Say I have two applications, one of which wants to use log4j, and the other wants to use JD1.4.
&lt;/em&gt;&lt;br/&gt;
Then the first application should use log4j directly, and the second should use java.logging. When an application uses commons-logging, it leaves the choice of logger system to the deployer.&lt;br/&gt;
... note that most applications choose a logging framework anyway, and wrap commons-logging around it for... for... who knows.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p><em><br />
Say I have two applications, one of which wants to use log4j, and the other wants to use JD1.4.<br />
</em><br />
Then the first application should use log4j directly, and the second should use java.logging. When an application uses commons-logging, it leaves the choice of logger system to the deployer.<br />
&#8230; note that most applications choose a logging framework anyway, and wrap commons-logging around it for&#8230; for&#8230; who knows.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Logger</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2990</link>
		<dc:creator>Logger</dc:creator>
		<pubDate>Wed, 28 Jul 2004 03:02:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2990</guid>
		<description>Perhaps the obsession first started when someone looked in the crapper and saw a log and then another.  This pattern of logs led to the notion of logging and keeping track of the logs as they appeared one by one.  It became fascinating, almost hypnotic.  And ultimately it became common, to the point where "evil" commons decided they must polish and wrap these logs for public consumption.  Thus, commons-logging was born and spewed upon the masses as yet another polished turd.</description>
		<content:encoded><![CDATA[<p>Perhaps the obsession first started when someone looked in the crapper and saw a log and then another.  This pattern of logs led to the notion of logging and keeping track of the logs as they appeared one by one.  It became fascinating, almost hypnotic.  And ultimately it became common, to the point where &#8220;evil&#8221; commons decided they must polish and wrap these logs for public consumption.  Thus, commons-logging was born and spewed upon the masses as yet another polished turd.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: th0u9ht l34d3r</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2989</link>
		<dc:creator>th0u9ht l34d3r</dc:creator>
		<pubDate>Wed, 28 Jul 2004 02:30:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2989</guid>
		<description>feel my log</description>
		<content:encoded><![CDATA[<p>feel my log</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stupid</title>
		<link>http://www.bileblog.org/2004/07/clogging-revisited/comment-page-1/#comment-2988</link>
		<dc:creator>stupid</dc:creator>
		<pubDate>Wed, 28 Jul 2004 02:19:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.bileblog.org/?p=119#comment-2988</guid>
		<description>Why in fuck's name is everyone obsessed with logging ?</description>
		<content:encoded><![CDATA[<p>Why in fuck&#8217;s name is everyone obsessed with logging ?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
