<?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: 7 More Good Tips on Logging</title>
	<atom:link href="http://codemonkeyism.com/7-more-good-tips-on-logging/feed/" rel="self" type="application/rss+xml" />
	<link>http://codemonkeyism.com/7-more-good-tips-on-logging/</link>
	<description></description>
	<lastBuildDate>Tue, 03 Jan 2012 15:08:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-229180</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Tue, 28 Apr 2009 13:18:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-229180</guid>
		<description>In the book mentioned, Spread is used to log all messages to, and then add listeners which will either write to file or monitor special events. Those are easier to write than log analyzers that issue actions (so well it is kind of application-to-application messageing).

Looking at the Second Life Message Queue Evaluation

http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

they use RabbitMQ for this:
&lt;i&gt;&quot;RabbitMQ is already installed in our image and is currently being deployed by the data warehousing team (Ivan in particular) to handle syslog message delivery.&quot;&lt;/i&gt;</description>
		<content:encoded><![CDATA[<p>In the book mentioned, Spread is used to log all messages to, and then add listeners which will either write to file or monitor special events. Those are easier to write than log analyzers that issue actions (so well it is kind of application-to-application messageing).</p>
<p>Looking at the Second Life Message Queue Evaluation</p>
<p><a href="http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes" rel="nofollow">http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes</a></p>
<p>they use RabbitMQ for this:<br />
<i>&#8220;RabbitMQ is already installed in our image and is currently being deployed by the data warehousing team (Ivan in particular) to handle syslog message delivery.&#8221;</i></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-229179</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Tue, 28 Apr 2009 12:41:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-229179</guid>
		<description>Hey Stephan,

I was reviewing the Spread toolkit and am curious as to how you think it would be used for something other than application-to-application messaging.  When I saw the link, I thought, &quot;Wow, there might be an alternative to Syslog that supports larger messages and could be a log event retainer!&quot;

Thoughts?</description>
		<content:encoded><![CDATA[<p>Hey Stephan,</p>
<p>I was reviewing the Spread toolkit and am curious as to how you think it would be used for something other than application-to-application messaging.  When I saw the link, I thought, &#8220;Wow, there might be an alternative to Syslog that supports larger messages and could be a log event retainer!&#8221;</p>
<p>Thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ridhav</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-227449</link>
		<dc:creator>Ridhav</dc:creator>
		<pubDate>Wed, 01 Apr 2009 04:47:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-227449</guid>
		<description>Its very nice and informative article.
@Michael It does decrease the performance after enabling debug in production in most of the cases even after load balancing.
But as debug is very much required to trace the errors, we can have a replica of prod deployed some where as pre-prod which points to same database and is debug enabled where we can leave the prod server to be just error enabled. so the developers can easily replicate the problems there on pre-prod without compromising the performance of production server.</description>
		<content:encoded><![CDATA[<p>Its very nice and informative article.<br />
@Michael It does decrease the performance after enabling debug in production in most of the cases even after load balancing.<br />
But as debug is very much required to trace the errors, we can have a replica of prod deployed some where as pre-prod which points to same database and is debug enabled where we can leave the prod server to be just error enabled. so the developers can easily replicate the problems there on pre-prod without compromising the performance of production server.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: french_c</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226772</link>
		<dc:creator>french_c</dc:creator>
		<pubDate>Thu, 12 Mar 2009 22:05:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226772</guid>
		<description>Should have read the comments though;) 

&quot;(Beside one-liners for easier grepping and awking)&quot;</description>
		<content:encoded><![CDATA[<p>Should have read the comments though;) </p>
<p>&#8220;(Beside one-liners for easier grepping and awking)&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: french_c</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226771</link>
		<dc:creator>french_c</dc:creator>
		<pubDate>Thu, 12 Mar 2009 22:04:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226771</guid>
		<description>Seems I have to add another important rule: Excluding stack traces never ever use more than one line to log. In other words: Log statements may not contain an CR/LF - especially in production.

I personally don&#039;t like the error code approach. While it sounds reasonable it becomes tricky in large scale applications. And what do you do with all our 3rd party libraries that don&#039;t follow this rule?</description>
		<content:encoded><![CDATA[<p>Seems I have to add another important rule: Excluding stack traces never ever use more than one line to log. In other words: Log statements may not contain an CR/LF &#8211; especially in production.</p>
<p>I personally don&#8217;t like the error code approach. While it sounds reasonable it becomes tricky in large scale applications. And what do you do with all our 3rd party libraries that don&#8217;t follow this rule?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johan Karlsson</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226743</link>
		<dc:creator>Johan Karlsson</dc:creator>
		<pubDate>Thu, 12 Mar 2009 08:28:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226743</guid>
		<description>Hi,

your articles about logging are very good. I wished I had written them :)

I have written an article with my personal comments about your article:

http://myossdevblog.blogspot.com/2009/03/how-to-do-logging.html

Best Regards
Johan</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>your articles about logging are very good. I wished I had written them :)</p>
<p>I have written an article with my personal comments about your article:</p>
<p><a href="http://myossdevblog.blogspot.com/2009/03/how-to-do-logging.html" rel="nofollow">http://myossdevblog.blogspot.com/2009/03/how-to-do-logging.html</a></p>
<p>Best Regards<br />
Johan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#160; Logging&#160;by&#160;Schauderhaftes</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226153</link>
		<dc:creator>&#160; Logging&#160;by&#160;Schauderhaftes</dc:creator>
		<pubDate>Tue, 24 Feb 2009 20:52:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226153</guid>
		<description>[...] Schmidt writes about logging in his latest article. I think he has 7 mostly valid points and even 7 more in an older post, but there is one advice [...]</description>
		<content:encoded><![CDATA[<p>[...] Schmidt writes about logging in his latest article. I think he has 7 mostly valid points and even 7 more in an older post, but there is one advice [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226144</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Tue, 24 Feb 2009 15:24:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226144</guid>
		<description>Splunk is excellent - a little pricy for smaller companies though.</description>
		<content:encoded><![CDATA[<p>Splunk is excellent &#8211; a little pricy for smaller companies though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Banjollity</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226140</link>
		<dc:creator>Banjollity</dc:creator>
		<pubDate>Tue, 24 Feb 2009 12:30:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226140</guid>
		<description>Google &quot;splunk&quot; - an excellent log management tool.</description>
		<content:encoded><![CDATA[<p>Google &#8220;splunk&#8221; &#8211; an excellent log management tool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kirk</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226135</link>
		<dc:creator>Kirk</dc:creator>
		<pubDate>Tue, 24 Feb 2009 09:58:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226135</guid>
		<description>@Kirk: What does machine readable mean? (Beside one-liners for easier grepping and awking)

it means create logs that are easily parsed, greped or awked.

But if you do not know what you are looking for, machine readable doesn’t help, you need human readable.

right, but I often know what I&#039;m not looking for ;-)</description>
		<content:encoded><![CDATA[<p>@Kirk: What does machine readable mean? (Beside one-liners for easier grepping and awking)</p>
<p>it means create logs that are easily parsed, greped or awked.</p>
<p>But if you do not know what you are looking for, machine readable doesn’t help, you need human readable.</p>
<p>right, but I often know what I&#8217;m not looking for ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226130</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Tue, 24 Feb 2009 08:37:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226130</guid>
		<description>@Kirk: What does machine readable mean? (Beside one-liners for easier grepping and awking)

But if you do not know what you are looking for, machine readable doesn&#039;t help, you need human readable.</description>
		<content:encoded><![CDATA[<p>@Kirk: What does machine readable mean? (Beside one-liners for easier grepping and awking)</p>
<p>But if you do not know what you are looking for, machine readable doesn&#8217;t help, you need human readable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kirk</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226128</link>
		<dc:creator>Kirk</dc:creator>
		<pubDate>Tue, 24 Feb 2009 08:10:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226128</guid>
		<description>Make the logs machine readable. Programs a much better at looking at massive amounts of data than I am.</description>
		<content:encoded><![CDATA[<p>Make the logs machine readable. Programs a much better at looking at massive amounts of data than I am.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226125</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Tue, 24 Feb 2009 06:07:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226125</guid>
		<description>@ Dimitris: Thanks, appreciated.</description>
		<content:encoded><![CDATA[<p>@ Dimitris: Thanks, appreciated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dimitris Andreou</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226116</link>
		<dc:creator>Dimitris Andreou</dc:creator>
		<pubDate>Tue, 24 Feb 2009 02:55:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226116</guid>
		<description>(a unique, a university, not an unique, or an university. sorry for the pedantry)</description>
		<content:encoded><![CDATA[<p>(a unique, a university, not an unique, or an university. sorry for the pedantry)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226092</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Mon, 23 Feb 2009 14:59:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226092</guid>
		<description>@Michael: What I&#039;ve learned is that you should be able to turn everything on or off in production, this includes logging.

I find it more useful to have lots of monitoring points in production to find problems than debug statements with logging.

&quot; I’m sure it does, sometimes, in some situations, but this is something that needs to be benchmarked.&quot;

Surely it depends on the debug logging culture (how many, what, who expensive are the logged expressions) in a company on how much it slows down your application. But I&#039;ve seen 30%-50% performance decrease due to turned on debugging.

&quot;You gotta test it.&quot;

Yes, as always. But as a rule of thumb, better have it turned off.</description>
		<content:encoded><![CDATA[<p>@Michael: What I&#8217;ve learned is that you should be able to turn everything on or off in production, this includes logging.</p>
<p>I find it more useful to have lots of monitoring points in production to find problems than debug statements with logging.</p>
<p>&#8221; I’m sure it does, sometimes, in some situations, but this is something that needs to be benchmarked.&#8221;</p>
<p>Surely it depends on the debug logging culture (how many, what, who expensive are the logged expressions) in a company on how much it slows down your application. But I&#8217;ve seen 30%-50% performance decrease due to turned on debugging.</p>
<p>&#8220;You gotta test it.&#8221;</p>
<p>Yes, as always. But as a rule of thumb, better have it turned off.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Campbell</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226091</link>
		<dc:creator>Michael Campbell</dc:creator>
		<pubDate>Mon, 23 Feb 2009 14:20:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226091</guid>
		<description>I think a refinement of #1 is, &quot;In a production environment, ensure a way to turn logging on and off.&quot;   When debugging a production issue, having debug and/or trace level logs can be invaluable.  

Also, much is made of debug logs &quot;slowing down apps&quot;.   I&#039;m sure it does, sometimes, in some situations, but this is something that needs to be benchmarked.   I&#039;ve seen apps that produce a few hundred megs of debug logs per second that when turned down... had no statistically significant performance gain.   This is particularly true with widely distributed infrastructures.  If everything is on one box, the story could be very different.  The point is, there is no &quot;best practice&quot; here in terms of performance.  You gotta test it.</description>
		<content:encoded><![CDATA[<p>I think a refinement of #1 is, &#8220;In a production environment, ensure a way to turn logging on and off.&#8221;   When debugging a production issue, having debug and/or trace level logs can be invaluable.  </p>
<p>Also, much is made of debug logs &#8220;slowing down apps&#8221;.   I&#8217;m sure it does, sometimes, in some situations, but this is something that needs to be benchmarked.   I&#8217;ve seen apps that produce a few hundred megs of debug logs per second that when turned down&#8230; had no statistically significant performance gain.   This is particularly true with widely distributed infrastructures.  If everything is on one box, the story could be very different.  The point is, there is no &#8220;best practice&#8221; here in terms of performance.  You gotta test it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226090</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Mon, 23 Feb 2009 14:03:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226090</guid>
		<description>I&#039;d say it&#039;s very important to always log a session/user id to find corresponding entries in different logs (especially when crossing boundaries client&lt;-&gt;server, tomcat&lt;-&gt;RMI backend etc.)

Reporting: Call a backend with REST and log the event

If you want to log client exceptions (and reporting), it&#039;s best to not log every event indivudually but collect events and say post 10 events to the backend. Most often it&#039;s not that important when losing frontend exceptions compared to server load.</description>
		<content:encoded><![CDATA[<p>I&#8217;d say it&#8217;s very important to always log a session/user id to find corresponding entries in different logs (especially when crossing boundaries client< ->server, tomcat< ->RMI backend etc.)</p>
<p>Reporting: Call a backend with REST and log the event</p>
<p>If you want to log client exceptions (and reporting), it&#8217;s best to not log every event indivudually but collect events and say post 10 events to the backend. Most often it&#8217;s not that important when losing frontend exceptions compared to server load.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mladen Miljic</title>
		<link>http://codemonkeyism.com/7-more-good-tips-on-logging/comment-page-1/#comment-226086</link>
		<dc:creator>Mladen Miljic</dc:creator>
		<pubDate>Mon, 23 Feb 2009 13:14:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.codemonkeyism.com/?p=665#comment-226086</guid>
		<description>Hi Stephan,
thanks for the hints. Can you say something about client side loging? How to log Exceptions occured in the browser (for example) and bind them to a corespending Exception on the server? (Ajax, DOM manipulating, Reporting...)</description>
		<content:encoded><![CDATA[<p>Hi Stephan,<br />
thanks for the hints. Can you say something about client side loging? How to log Exceptions occured in the browser (for example) and bind them to a corespending Exception on the server? (Ajax, DOM manipulating, Reporting&#8230;)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk (user agent is rejected)
Database Caching 4/28 queries in 0.035 seconds using disk

Served from: codemonkeyism.com @ 2012-02-10 06:27:05 -->
