Adam Jenkins wrote:
I understand the motivation for large scale stuff like that...but your thoughts on simple concats?Our conclusion was that it was best just to get into the habit of wrapping all log statements (except maybe error and warning depending on your p.o.v). In an example like yours, even if the message isn't output 3 things happen:
e.g. log.debug("Here is some stuff that happened" + someStuff);
Just out of interests, did your profiling pick up less or more time spent in that than wrapping it in a debug?
1) The creation of new (temporary) objects 2) Entering the method and executing any code there 3) Garbage collection of the temporary objects
While point 2 may be pretty insignificant depending on the actual logging library in use (and other factors) points 1 and 3 certainly aren't.
After all, all that the VM has to do if you wrap the code is check a boolean (which it may well have inlined). If it's false it doesn't do 1, 2 or 3.
Mark
