It shouldn't be significant. On page 41 of the book, Ceki says, "This is an insignificant overhead because evaluating a logger takes less than 1% of the time it actually takes to log. If a method contains multiple log statements, it may be possible to factor out the tests."

I factor out the tests, because I'm sensitive to performance.



At 11:51 AM 04/22/2004 -0500, you wrote:
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]

Bob Pepersack 410-468-2054


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



Reply via email to