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);

可能是什么原因?

请参阅官方文档中的转换字表。由于包和类名的组合长度,您必须将记录器配置为至少 40 的长度:

%logger{40}

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

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

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

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