slf4j记录器未打印完整的软件包名称

时间:2019-05-30 20:23:30

标签: java logging log4j slf4j

我有一个项目,其中包含一些使用org.slf4j.Logger记录某些信息的类。所有其他班级的记录仪都可以正常工作,并打印完整的班级名称,例如INFO com.myapp.gca.servlet.LoginServlet - Entering login。但是对于一个班级,它不会显示完整的班级名称,例如INFO c.m.gca.servlet.HealthCheckServlet - GCA health check OK,其中com.myapp.c.m.取代。

在这个特殊的班级中,我与其他人没有任何区别。记录器的定义类似于

 private static Logger log = LoggerFactory.getLogger(HealthCheckServlet.class);

可能是什么原因?

2 个答案:

答案 0 :(得分:1)

在logback.xml的模式中使用%logger {26}。

有关更多详细信息,请参阅此链接。

https://logback.qos.ch/manual/layouts.html

答案 1 :(得分:0)

请参阅官方文档中的Conversion Word表。由于包名和类名的长度必须组合,因此必须将记录器的长度至少配置为40

%logger{40}

但是,%logger最好提供始终提供全名。