java - Log4j 验证异常是否作为最后一个参数传递

标签 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 中所述

The SLF4J API supports parametrization in the presence of an exception, assuming the exception is the last parameter.

有没有办法确定异常是否作为最后一个参数传递给所有记录器的方法调用(如 errorinfo)?

最佳答案

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

但是您可以使用 FindBugs 的组合和 findbugs-slf4j使用 SLF4J_PLACE_HOLDER_MISMATCH 进行静态检查的插件和 SLF4J_FORMAT_SHOULD_BE_CONST

关于java - Log4j 验证异常是否作为最后一个参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47633702/

相关文章:

java - 使用 smack 4.2.2 从 Openfire 服务器获取所有用户

java - G1GC 非常高的 GC 计数和 CPU,非常频繁的 GC 会降低性能

java - 自动具有多个级别的多个日志文件

java - Selenium + Jenkins : Missing location header

java - 初始化由函数 Java for android 检索的类

Java 单元测试覆盖率数字不匹配

lambda - 如何从字节数组制作 IntStream?

Java 8 并行处理和 Lambda 表达式

log4j - Netty 4.0 和 Log4J

java - %c{1.} 是哪个版本的 log4j 变得有效