Comments inline.

I think it would be better if it was:

FINE corresponds to nothing
FINER corresponds to FINER
FINEST corresponds to TRACE

That leaves "FINE" open as a spot between info and debug. One area I think we use that spot in celtix is for logging buffers. Buffers are something that falls between info stuff (service deployed, client connect, etc...) and debug. Many times, people want the buffers, but without all the extra debug stuff that really doesn't apply to them.

That said, buffers are more useful in SOAP/XML than IIOP.   :-)

Sounds fine.

Neither of those avoid the string concatination. The whole point of the "if" statement is to make sure the string concat isn't done as that is potentially very costly. It's a little more verbose, but it's really the only way to avoid it.

Thats right, i don't know what I was thinking.

That said, the "more correct" way to do it would be with a resource bundle:
log.log(Level.FINER, "ABOUT_TO_DO_STUFF_ID", stuff);
or, since it's FINER and we don't really care anout localizationn:
log.log(Level.FINER, "About to do stuff {0}", stuff);
That only works for a single param though. For multiple params, it would be:

log.log(Level.FINER, "About to do stuff {0} and {1}",
                                   new Object[] {stuff, stuff1});
in which case you would want to wrap it with the if statement to avoid the "new Object[]" creation. (although the Object[] creation is a lot cheaper than the string concat)

So, INFO and higher messages should be localized?

Regards,
Anders

Reply via email to