I got a recommendation to use this syntax when logging in java:
if (logger.isLoggable(Log.FINE))
{
logger.fine("bla"+" bla"+" bla");
}
The reason for this is to avoid the redundant construction of the parameter string incase the logging level is lower than “FINE”. (in the example above – 5 redundant string object. (” bla”X3, ” bla bla” and “bla bla bla”).
I’d like to hear what others are doing about this or if you think that this is necessary at all.
Thanks!!
Some newer logging frameworks allow you to specify arguments as parameters, and won’t evaluate them if there’s no logging.
The example I found is LogBack, the successor to Log4j. Here’s the info: http://www.infoq.com/news/2007/08/logback
This gives you the best of both worlds, so to speak. Elegant syntax yet good performance.
Log4j code example:
Equivalent LogBack code: