<?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: Exception Handling versus Logging</title>
	<atom:link href="http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/feed/" rel="self" type="application/rss+xml" />
	<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/</link>
	<description>No movement is faster than no movement</description>
	<lastBuildDate>Thu, 11 Mar 2010 09:12:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Anonymous</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-186</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 24 Jul 2006 01:33:33 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-186</guid>
		<description>My advice
1. Never ever expect a customer to tolerate downtime, you WILL get shouted at if this happens often and potentially get sued!
2. Test your software properly on a test machine before it goes live, to stop an avoidable  flood of live errors, log4J will help loads here!
3. Actively design how your logging works, don&#039;t just throw in logging statement, use just enough logging at key points in the code, with the correct logging levels
4. Log4j is a very powerful API, but must be use correctly to be useful e.g. it can support multiple filters, appends and output formats, read the docs to learn these, even better buy their PDF ebook, it&#039;s a goldmine!
6. Use the Log4j XMLConfiguration, it allows you to do things not supported by other configurations!
7. Make your application as fault tolerant as possible, so that an error can occur and be caught in isolated areas without rippling outwards or crashing the application.
7. catch and log any exceptions as late as possible, without losing necessary local information or affecting fault tolerance of the application.  However for deep stack traces, catch and log the exception earlier, then throw a later caught and ignored exception.
8. Make sure that you have some info and warn logging so that you know what happened before the exception occured, because the exception information maybe inadequate to find the actual cause, especially for out of memory errors!

Infernoz</description>
		<content:encoded><![CDATA[<p>My advice<br />
1. Never ever expect a customer to tolerate downtime, you WILL get shouted at if this happens often and potentially get sued!<br />
2. Test your software properly on a test machine before it goes live, to stop an avoidable  flood of live errors, log4J will help loads here!<br />
3. Actively design how your logging works, don&#8217;t just throw in logging statement, use just enough logging at key points in the code, with the correct logging levels<br />
4. Log4j is a very powerful API, but must be use correctly to be useful e.g. it can support multiple filters, appends and output formats, read the docs to learn these, even better buy their PDF ebook, it&#8217;s a goldmine!<br />
6. Use the Log4j XMLConfiguration, it allows you to do things not supported by other configurations!<br />
7. Make your application as fault tolerant as possible, so that an error can occur and be caught in isolated areas without rippling outwards or crashing the application.<br />
7. catch and log any exceptions as late as possible, without losing necessary local information or affecting fault tolerance of the application.  However for deep stack traces, catch and log the exception earlier, then throw a later caught and ignored exception.<br />
8. Make sure that you have some info and warn logging so that you know what happened before the exception occured, because the exception information maybe inadequate to find the actual cause, especially for out of memory errors!</p>
<p>Infernoz</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BlinkList &#124; Your Personal Start Page and Social Bookmarking Engine</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-185</link>
		<dc:creator>BlinkList &#124; Your Personal Start Page and Social Bookmarking Engine</dc:creator>
		<pubDate>Wed, 12 Jul 2006 06:51:38 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-185</guid>
		<description>&lt;!--%kramer-ref-pre%--&gt;[...] Exception Handling versus Logging &lt; Programming Kung Fu [...]&lt;!--%kramer-ref-post%--&gt;</description>
		<content:encoded><![CDATA[<p><!--%kramer-ref-pre%-->[...] Exception Handling versus Logging &#38;lt; Programming Kung Fu [...]<!--%kramer-ref-post%--></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: richard</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-184</link>
		<dc:creator>richard</dc:creator>
		<pubDate>Sat, 01 Jul 2006 08:16:28 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-184</guid>
		<description>Hi,

The production systems we put together are set up so that uncaught exceptions are emailed to support programmers. Getting emailed all the time is pretty annoying and is good motivation for fixing the bugs. The users just see a message such as &#039;An error occurred and support staff are working on resolving the problem now&#039;.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>The production systems we put together are set up so that uncaught exceptions are emailed to support programmers. Getting emailed all the time is pretty annoying and is good motivation for fixing the bugs. The users just see a message such as &#8216;An error occurred and support staff are working on resolving the problem now&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javalobby News - 2006/6/27</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-183</link>
		<dc:creator>Javalobby News - 2006/6/27</dc:creator>
		<pubDate>Fri, 30 Jun 2006 21:33:14 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-183</guid>
		<description>&lt;!--%kramer-ref-pre%--&gt;[...] Exception Handling versus Logging [...]&lt;!--%kramer-ref-post%--&gt;</description>
		<content:encoded><![CDATA[<p><!--%kramer-ref-pre%-->[...] Exception Handling versus Logging [...]<!--%kramer-ref-post%--></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Notes Tone Unturned: Be afraid of error logging, be very afraid?</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-182</link>
		<dc:creator>Notes Tone Unturned: Be afraid of error logging, be very afraid?</dc:creator>
		<pubDate>Thu, 29 Jun 2006 16:16:40 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-182</guid>
		<description>&lt;!--%kramer-ref-pre%--&gt;[...] or anything else: What are your experiences with logging? // posted by NotesTracker&nbsp;@&nbsp;6/28/2006 12:08:00 PM &nbsp;&nbsp;     Comments: Post a Comment    Links to this post:   See links to this post    &nbsp;    posted by  @      if (typeof BL_addOnLoadEvent == &#039;function&#039;) { BL_addOnLoadEvent(function() { BL_writeBacklinks(); }); } [...]&lt;!--%kramer-ref-post%--&gt;</description>
		<content:encoded><![CDATA[<p><!--%kramer-ref-pre%-->[...] or anything else: What are your experiences with logging? // posted by NotesTracker&#38;nbsp;@&#38;nbsp;6/28/2006 12:08:00 PM &#38;nbsp;&#38;nbsp;     Comments: Post a Comment    Links to this post:   See links to this post    &#38;nbsp;    posted by  @      if (typeof BL_addOnLoadEvent == &#8216;function&#8217;) { BL_addOnLoadEvent(function() { BL_writeBacklinks(); }); } [...]<!--%kramer-ref-post%--></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-181</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 28 Jun 2006 17:01:26 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-181</guid>
		<description>Logging is useful. But as you stated, if nobody looks at them, they&#039;re useless.
See LogDistiller (http://logdistiller.sourceforge.net/), a GPL tools to help automatically  classifying logs so that they become usefull, without too much work</description>
		<content:encoded><![CDATA[<p>Logging is useful. But as you stated, if nobody looks at them, they&#8217;re useless.<br />
See LogDistiller (<a href="http://logdistiller.sourceforge.net/" rel="nofollow">http://logdistiller.sourceforge.net/</a>), a GPL tools to help automatically  classifying logs so that they become usefull, without too much work</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ravi Yagatili</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-180</link>
		<dc:creator>Ravi Yagatili</dc:creator>
		<pubDate>Wed, 28 Jun 2006 15:02:20 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-180</guid>
		<description>Exception handling is how your application responds when for example your application&#039;s backend system or the service is unavailable and how you handle it., where as logging information from your application (responsibly using different levels available within log4j), gives you information about your application for the various interactions and how much of that information makes sense to you and how you would interpret your application. If you log unneccessary information that you do not need &#38; then you enable it in a production environment then obviously you are thrashing your application &#38; abusing the logging. If on the other hand you do not gracefully handle the execptions, then your application output behavior might be different than what you would anticipate in an environment where systems are timing out and so on so forth.</description>
		<content:encoded><![CDATA[<p>Exception handling is how your application responds when for example your application&#8217;s backend system or the service is unavailable and how you handle it., where as logging information from your application (responsibly using different levels available within log4j), gives you information about your application for the various interactions and how much of that information makes sense to you and how you would interpret your application. If you log unneccessary information that you do not need &#38;#38; then you enable it in a production environment then obviously you are thrashing your application &#38;#38; abusing the logging. If on the other hand you do not gracefully handle the execptions, then your application output behavior might be different than what you would anticipate in an environment where systems are timing out and so on so forth.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gwyn Evans</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-179</link>
		<dc:creator>Gwyn Evans</dc:creator>
		<pubDate>Wed, 28 Jun 2006 11:38:40 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-179</guid>
		<description>Sounds to me as if you didn&#039;t filter your logging to differentiate between levels, e.g. Fatal, Error, Warn, Info &#38; Debug.  If you do that, you&#039;d be able to focus in the real issues, maybe by logging just the Fatal &#38; Errors to one location for monitoring while logging all the supporting (lower level) info elsewhere for reference on a case by case basis.</description>
		<content:encoded><![CDATA[<p>Sounds to me as if you didn&#8217;t filter your logging to differentiate between levels, e.g. Fatal, Error, Warn, Info &#38;#38; Debug.  If you do that, you&#8217;d be able to focus in the real issues, maybe by logging just the Fatal &#38;#38; Errors to one location for monitoring while logging all the supporting (lower level) info elsewhere for reference on a case by case basis.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-178</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 28 Jun 2006 07:18:57 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-178</guid>
		<description>One real problem with logging is when you have a server based application with 400 concurrent users and 50 of them hit a bug during a given period of time, the same Exception (including a stack trace) is logged 50 times. To get round this would need some interesting code in the exceptions to detect if it has been logged already and only put out a basic message for subsequent occurances.</description>
		<content:encoded><![CDATA[<p>One real problem with logging is when you have a server based application with 400 concurrent users and 50 of them hit a bug during a given period of time, the same Exception (including a stack trace) is logged 50 times. To get round this would need some interesting code in the exceptions to detect if it has been logged already and only put out a basic message for subsequent occurances.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: martinus</title>
		<link>http://martin.ankerl.com/2006/06/16/exception-handling-versus-logging/comment-page-1/#comment-177</link>
		<dc:creator>martinus</dc:creator>
		<pubDate>Tue, 27 Jun 2006 11:33:41 +0000</pubDate>
		<guid isPermaLink="false">http://martin.ankerl.com/?p=62#comment-177</guid>
		<description>@kawazu, your example with the wrong password is very good, that&#039;s where logging makes perfectly sense.</description>
		<content:encoded><![CDATA[<p>@kawazu, your example with the wrong password is very good, that&#8217;s where logging makes perfectly sense.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
