什么版本的log4j确实%c {1。}变为有效

时间:2016-06-08 08:34:01

标签: java maven log4j slf4j

我想使用以下转换模式

%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1.}:%L - %m%n

产生类似

的输出
2016-06-08 10:29:40 [http-nio-8080-exec-8] DEBUG h.d.h.l.l.s.w.f.MyClass:27 - This is a debug message.
2016-06-08 10:29:40 [http-nio-8080-exec-8] INFO  h.d.h.l.l.s.w.f.MyClass:22 - This is an info message.
2016-06-08 10:29:40 [http-nio-8080-exec-8] WARN  h.d.h.l.l.s.w.f.MyClass:33 - This is a warn message.
2016-06-08 10:29:40 [http-nio-8080-exec-8] ERROR h.d.h.l.l.s.w.f.MyClass:39 - This is an error message.
2016-06-08 10:29:40 [http-nio-8080-exec-8] FATAL h.d.h.l.l.s.w.f.MyClass:45 - This is a fatal message.

然而,当我运行测试并触发我的log4j文件时,我收到错误消息

log4j:ERROR Category option "1." not a decimal integer.

使用

在我的pom中设置Log4j和slf4j
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.19</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.19</version>
  <scope>runtime</scope>
</dependency>

我需要获得什么版本的log4j才能成为有效的类别选项。

1 个答案:

答案 0 :(得分:2)

我使用的是PatternLayout而不是EnhancedPatternLayout

%c{1.}

仅在EnhancedPatternLayout中可用