Log4j показать имя пакета
Прямо сейчас для моего ConversionPattern у меня есть:
log4j.appender.A1.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss,SSS} %5p [%t] (%F:%L) - %m%n
То, что я хотел бы сделать, также включает полное имя пакета с классом (% F:% L), но я не могу найти любую конфигурацию сделать это в документах. Я понимаю, что это будет медленнее, но это только для отладки, а не когда система будет в производстве.
Ответы
Ответ 1
Возможно, я просто неправильно понимаю вас, но% C выведет ваш класс с пакетом.
Из ваших ссылок:
% С
Используется для вывода полной имя класса вызывающего запрос регистрации. Это преобразование спецификатор может быть необязательно спецификатором точности, то есть десятичная константа в скобках.
Если задан спецификатор точности, то только соответствующее число право большинства компонентов класса имя будет напечатано. По умолчанию имя класса выводится полностью квалифицированная форма.
Например, для имени класса "org.apache.xyz.SomeClass", pattern% C {1} выведет "SomeClass".
ПРЕДУПРЕЖДЕНИЕ Создание класса вызывающего абонента информация медленная. Таким образом, использование должно следует избегать, если скорость выполнения не проблема.
Update:
Во многих случаях вы также можете использовать% c, который также распечатает полный класс с пакетом, если ваша категория - ваше имя класса. Например, когда вы делаете подобные вещи при инициализации своего журнала:
private static final Log LOG = LogFactory.getLog(MyClazz.class);
Использование% c не замедляется.
Ответ 2
Использование C{1}
выполняется медленно. Подробнее см. Ниже:
В соответствии со следующей ссылкой :
Используется для вывода полного имени класса вызывающего абонента запрос каротажа. Этот спецификатор преобразования может быть необязательно за которым следует спецификатор точности, то есть десятичная константа в кронштейны. Если задан спецификатор точности, то только Соответствующее количество правых частей компонента имени класса будет печататься. По умолчанию имя класса выводится в полностью форма.
Например, для имени класса org.apache.xyz.SomeClass
, pattern %C{1}
выводит SomeClass
.
ПРЕДУПРЕЖДЕНИЕ Генерирование информации класса вызывающего абонента выполняется медленно. Таким образом, следует избегать использования, если только скорость выполнения не является проблемой.