I find the behavior of logger.whatever(format, ....) rather confusing.
1. What bothers me most: Forgetting a brace means that an argument gets ignored, which may mean waiting one more week till something like
logger.error("Rare problem: {}, problem, details)
fires again. A simple fix would be to follow Guava's implementation like in
which says "Unmatched arguments will be appended to the formatted message in square braces".
This is a simple fix and the behavior gets changed only in case of a user error. I'd gladly contribute the fix.
2. A strange thing is that an exception needs no braces. So
leaves {} behind if o2 happens to be an exception. This is no big deal, but it's undocumented. My logfiles are full of braces as it took me a while till I found it out.