Log4j验证Exception是否作为最后一个参数传递

时间:2017-12-04 12:44:10

标签: java java-8 log4j slf4j

我正在使用slf4j和log4j。我的POM依赖关系如下所示 -

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

正如SLF4J FAQ

中所述
  

SLF4J API支持在存在的情况下进行参数化   异常,假设异常是最后一个参数。

在a中是否有办法识别是否将异常作为最后一个参数传递给所有记录器的方法调用(如errorinfo)?

1 个答案:

答案 0 :(得分:3)

在编译时甚至在运行时都没有简单的方法来进行这种检查。

然而,您可以使用FindBugsfindbugs-slf4j插件的组合来静态检查SLF4J_PLACE_HOLDER_MISMATCHSLF4J_FORMAT_SHOULD_BE_CONST