У меня есть проект с некоторыми классами, использующими 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);
В чем может быть причина?
Используйте %logger{26} в шаблоне в файле logback.xml.
Для получения более подробной информации перейдите по этой ссылке.
См. таблицу Слово преобразования в официальной документации. Вы должны настроить регистратор на длину не менее 40
из-за комбинированной длины имени пакета и класса:
%logger{40}
Однако лучше использовать %logger
, который всегда содержит полное имя.