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.

ПРЕДУПРЕЖДЕНИЕ Генерирование информации класса вызывающего абонента выполняется медленно. Таким образом, следует избегать использования, если только скорость выполнения не является проблемой.