日志为空Map时log4j的BUG
Bug of log4j when log empty Map
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
Java 代码:
Logger logger = LogManager.getLogger();
Map<String, String> map = new HashMap<>();
System.out.println(logger);
logger.info("{}-{}", System.currentTimeMillis(), map);
输出:
org.apache.logging.slf4j.SLF4JLogger@1c2c22f3
20:12:56.257 [main] INFO com.xxx - 1639051976254-1639051976254
显然,正确的输出应该是1639051976254-{}
有没有人有同样的问题?
是的,这是一个已知错误:LOG4J2-2623。您的消息被格式化了两次:
- 第一次使用 Log4j 2.x,
- 第二次通过您使用的任何 SLF4J 后端(可能是 Logback)。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
Java 代码:
Logger logger = LogManager.getLogger();
Map<String, String> map = new HashMap<>();
System.out.println(logger);
logger.info("{}-{}", System.currentTimeMillis(), map);
输出:
org.apache.logging.slf4j.SLF4JLogger@1c2c22f3
20:12:56.257 [main] INFO com.xxx - 1639051976254-1639051976254
显然,正确的输出应该是1639051976254-{}
有没有人有同样的问题?
是的,这是一个已知错误:LOG4J2-2623。您的消息被格式化了两次:
- 第一次使用 Log4j 2.x,
- 第二次通过您使用的任何 SLF4J 后端(可能是 Logback)。