[ 
https://issues.apache.org/jira/browse/BEAM-10953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kyle Weaver updated BEAM-10953:
-------------------------------
    Description: 
slf4j Logger has overloaded methods for each severity level:

    public void warn(String format, Object... arguments);
    public void warn(String msg, Throwable t);

These two signatures are often confused:

    LOG.warn("foo {}", new Exception("bar"));

This example does not print "foo bar" or anything like one would expect. 
Instead, "foo {}" (without any substitution). This often confuses Dataflow 
users.

This pattern can be statically checked in Intellij. We should figure out how to 
enable similar checks using our existing static analysis tooling (perhaps 
errorprone?)

  was:
slf4j Logger has overloaded methods for each severity level:

    public void warn(String format, Object... arguments);
    public void warn(String msg, Throwable t);

These two signatures are often confused:

    LOG.warn("foo {}", new Exception("bar"));

This example does not print "foo bar" or anything like one would expect. 
Instead, "foo {}" (without any substitution). This often confuses Dataflow 
users.

This pattern can be statically checked in Intellij. We should figure out how to 
enable it using our existing static analysis tooling (perhaps errorprone?)


> Logging placeholder mismatches should be disallowed.
> ----------------------------------------------------
>
>                 Key: BEAM-10953
>                 URL: https://issues.apache.org/jira/browse/BEAM-10953
>             Project: Beam
>          Issue Type: Bug
>          Components: testing
>            Reporter: Kyle Weaver
>            Priority: P2
>
> slf4j Logger has overloaded methods for each severity level:
>     public void warn(String format, Object... arguments);
>     public void warn(String msg, Throwable t);
> These two signatures are often confused:
>     LOG.warn("foo {}", new Exception("bar"));
> This example does not print "foo bar" or anything like one would expect. 
> Instead, "foo {}" (without any substitution). This often confuses Dataflow 
> users.
> This pattern can be statically checked in Intellij. We should figure out how 
> to enable similar checks using our existing static analysis tooling (perhaps 
> errorprone?)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to