<div dir="ltr">I find the behavior of logger.whatever(format, ....) rather confusing.<div><br></div><div>1. What bothers me most: Forgetting a brace means that an argument gets ignored, which may mean waiting one more week till something like</div><div><br></div><div>logger.error("Rare problem: {}, problem, details)</div><div><br></div><div>fires again. A simple fix would be to follow Guava's implementation like in</div><div><a href="https://github.com/google/guava/blob/master/guava/src/com/google/common/base/Preconditions.java#L154" target="_blank">https://github.com/google/<wbr>guava/blob/master/guava/src/<wbr>com/google/common/base/<wbr>Preconditions.java#L154</a><br></div><div>which says "Unmatched arguments will be appended to the formatted message in square braces".</div><div><br></div><div>This is a simple fix and the behavior gets changed only in case of a user error. I'd gladly contribute the fix.</div><div><br></div><div><br></div><div><br></div><div>2. A strange thing is that an exception needs no braces. So</div><div><br></div><div><a href="http://logger.info">logger.info</a>("Foo {} bar {}", o1, o2)</div><div><br></div><div>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.</div></div>