<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Scala makes things tidy &#8211; logging</title>
	<atom:link href="http://supplesoftware.com/2009/06/29/scala-makes-things-tidy-logging/feed/" rel="self" type="application/rss+xml" />
	<link>http://supplesoftware.com/2009/06/29/scala-makes-things-tidy-logging/</link>
	<description>George&#039;s thoughts on software development</description>
	<lastBuildDate>Tue, 17 Nov 2009 21:12:44 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: supplesoftware</title>
		<link>http://supplesoftware.com/2009/06/29/scala-makes-things-tidy-logging/#comment-18</link>
		<dc:creator>supplesoftware</dc:creator>
		<pubDate>Tue, 17 Nov 2009 21:12:44 +0000</pubDate>
		<guid isPermaLink="false">http://supplesoftware.com/?p=16#comment-18</guid>
		<description>Oh, the LoggerFactory.getLogger() you mean?

I would imagine the logging framework (aforementioned LoggerFactory) probably does a fair amount of caching and doesn&#039;t instantiate a new logger every time. Plus, the kind of objects you would instantiate a lot (model classes?) aren&#039;t that fussed about logging.

I guess the only way to find out is to profile it...</description>
		<content:encoded><![CDATA[<p>Oh, the LoggerFactory.getLogger() you mean?</p>
<p>I would imagine the logging framework (aforementioned LoggerFactory) probably does a fair amount of caching and doesn&#8217;t instantiate a new logger every time. Plus, the kind of objects you would instantiate a lot (model classes?) aren&#8217;t that fussed about logging.</p>
<p>I guess the only way to find out is to profile it&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gustavo Hexsel</title>
		<link>http://supplesoftware.com/2009/06/29/scala-makes-things-tidy-logging/#comment-17</link>
		<dc:creator>Gustavo Hexsel</dc:creator>
		<pubDate>Mon, 16 Nov 2009 17:29:54 +0000</pubDate>
		<guid isPermaLink="false">http://supplesoftware.com/?p=16#comment-17</guid>
		<description>Here&#039;s my BIG quibble with that: the lookup function for the log itself can (probably is) a fairly expensive thing.  If you have a ton of object creation, this implementation (even if you use lazy objects) could lead to a huge amount of extra effort, specially if the logging is off (since logging is itself very expensive when it&#039;s on, it won&#039;t matter as much).

The only option (pretty ugly) I&#039;ve found to avoid these lookups per instantiated object is to create a private object to hold the logger on a package level.  You could do that on a per-class case, but it becomes even more verbose.

All logging solutions I&#039;ve seen until now seem to be using this, am I the only one that&#039;s raising this question?</description>
		<content:encoded><![CDATA[<p>Here&#8217;s my BIG quibble with that: the lookup function for the log itself can (probably is) a fairly expensive thing.  If you have a ton of object creation, this implementation (even if you use lazy objects) could lead to a huge amount of extra effort, specially if the logging is off (since logging is itself very expensive when it&#8217;s on, it won&#8217;t matter as much).</p>
<p>The only option (pretty ugly) I&#8217;ve found to avoid these lookups per instantiated object is to create a private object to hold the logger on a package level.  You could do that on a per-class case, but it becomes even more verbose.</p>
<p>All logging solutions I&#8217;ve seen until now seem to be using this, am I the only one that&#8217;s raising this question?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
