slf4j 记录器不打印完整的包名称

slf4j logger doesn't print full package name

我有一个项目,其中一些 classes 使用 org.slf4j.Logger 来记录一些信息。所有其他 classes 中的记录器工作正常并打印完整的 class 名称,例如INFO com.myapp.gca.servlet.LoginServlet - Entering login。但是对于一个 class,它不会打印完整的 class 名称,例如INFO c.m.gca.servlet.HealthCheckServlet - GCA health check OK,其中 com.myapp. 替换为 c.m.

我找不到这个 class 与其他人有任何区别。记录器定义为

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

可能是什么原因?

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

有关详细信息,请参阅此 link。

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

请参阅官方文档中的 Conversion Word table。由于组合包和 class 名称长度,您必须将记录器配置为至少 40 的长度:

%logger{40}

但是,总是提供全名的%logger会更好。