The problem is, like @bbeck said, every call will result in a string concatenation even if the message is not logged. That's ok when the log volume is low, but can be a serious problem when lots of log messages are generated. More GC churn, etc. Exception handlers are generally low volume, or should be, since the exception itself is a decent performance hit.