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

Nic*_*OSU 4 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);
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

Nik*_*las 7

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

%logger{40}
Run Code Online (Sandbox Code Playgroud)

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