from log4j documentation (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Category.html#isDebugEnabled%28%29):I saw some code yesterday that reminded me of the usage for isDebugEnabled(). The code is: private void debugMessage(String msg) { if (log.isDebugEnabled()) { log.debug(msg); } } Then a bunch of calls to that: debugMessage("some message here"); This sort of defeats the purpose of wrapping the log.debug(). While I've always been a fan of ALWAYS wrapping log.debug(), I've gone with the wrap them if the strings are being concatenated. See the discussion on spacewalk list: http://www.mail-archive.com/spacewalk-devel@redhat.com/msg01204.html So for candlepin, let's go with just doing log.debug("simple string") when needed and wrap the ones where you are dealing with concatenation i.e. log.debug("Found token in curator " + subToken + " " + token); Some would argue this is premature optimization, but having had to go through this with 3 projects now, I'd like to go ahead and just head off this now before we have 100k of code. Thanks jesus PS sloccount shows Totals grouped by language (dominant language first): java: 10370 (90.61%) python: 711 (6.21%) sh: 249 (2.18%) ruby: 115 (1.00%) _______________________________________________ candlepin mailing list candlepin@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/candlepin
public boolean isDebugEnabled()Check whether this category is enabled for the
DEBUG
Level.
This function is intended to lessen the computational cost of disabled log debug statements.
For some cat
Category object, when you write,
cat.debug("This is entry number: " + i );
You incur the cost constructing the message, concatenatiion in this case, regardless of whether the message is logged or not.
If you are worried about speed, then you should write
if(cat.isDebugEnabled()) { cat.debug("This is entry number: " + i ); }
This way you will not incur the cost of parameter construction if
debugging is disabled for cat
. On the other hand, if the cat
is debug enabled, you will incur the cost of evaluating whether the
category is debug enabled twice. Once in isDebugEnabled
and once in the debug
. This is an insignificant overhead
since evaluating a category takes about 1%% of the time it takes to
actually log.