Is the call to isDebugEnabled actually significant?

James Stauffer



-----Original Message-----
From: Robert Pepersack [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 22, 2004 11:49 AM
To: Log4J Users List
Subject: Re: Which Way of "Extending" Gives Fastest Performance


You could create a class boolean variable that is set once by 
isDebugEnabled().  Then you could say:

private boolean debug = logger.isDebugEnabled();

In you method code you could say:

if (debug) cat.debug(myObject.showState());

This would make it so that you only call isDebugEnabled() once in each
class.


At 11:54 AM 04/22/2004 -0400, you wrote:
>This is a little off from the original question, and note that we also
>haven't touched any of our logging code in quite a while, but:
>
>We found that we had to address some performance problems where there 
>was
>an insignificant cost to creating the string that we were going to send to 
>log4j.
>
>For example, you might have:
>
>    cat.debug(myObject.showState());
>
>or some such thing, and the issue is that even if debug logging is
>disabled, the call into cat.debug() is still made, which means the call to 
>myObject.showState() is also made, even if the results from showState() 
>are in fact never used.
>
>We handled this by wrapping all of logging statements (well, at least
>debug ones, I think) in a conditional, like this:
>
>   if (cat.isDebugEnabled()) cat.debug(myObject.showState());
>
>to avoid that overhead.
>
>I was never really happy with this.  I suppose some sort of helper 
>object
>might have made more sense... or is there a better way now to deal with
this?
>
>dwh
>
>
>James Stauffer wrote:
>
>>Do you know that logging has a significant effect on your current 
>>performance?  If it only takes 0.01% of CPU time then it doesn't 
>>really matter.
>>
>>James Stauffer
>>
>>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]

Bob Pepersack
410-468-2054


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to