The msg argument in most cases is a string literal because it is either a
resource bundle key or a MessageFormat literal. The established best practice
is to convert on the fly construction of messages to use the MessageFormat syle
logging. This current patch is kind of anti-pattern of that practice. I would
think the real win would be to delay construction of the 'params' argument in
the logging framework. Allowing the callers to write logger.log(level, "{0}",
Foo::bar) and have the call to bar be lazy eval would be the best of both the
logging world and the lambda world. Jason
> Date: Fri, 21 Dec 2012 20:50:18 -0800
> From: henry....@oracle.com
> To: core-libs-dev@openjdk.java.net; lambda-...@openjdk.java.net
> Subject: RFR 2: JDK-8005263: Logging APIs takes Supplier<String> for message
>
> Hi,
>
> Update patch with review feedback,
> - JavaDoc update for benefit and gotcha.
> - logEx/logpEx is not log/logp with Supplier<String> as last argument.
> As a matter of fact, all API with Supplier<String> takes it as last
> argument.
> - No more doLog(Level, Supplier<String>, Block<LogRecord>) helper for
> performance concerns.
>
> Specdiff and webrev can be found at following,
>
> http://cr.openjdk.java.net/~henryjen/ccc/8005263.1/specdiff/diff.html
> http://cr.openjdk.java.net/~henryjen/ccc/8005263.1/webrev/
>
> Cheers,
> Henry
>