Как бы сокращать/сокращать имена пакетов в журнале, сгенерированном с помощью log4j. то есть вместо com.longpackage.anotherpackage.lastpackage.MyClass
я хочу c.l.a.l.MyClass
. Я видел это в Artifactory, но не могу понять, как это сделать, используя log4j.
Log4j: сокращать/сокращать имена пакетов
Ответ 1
Оказывается, что это возможно, используя log4j в конце концов (проверено с помощью v1.2.16), благодаря Tomasz Nurkiewicz для указания на LogBack. Функция, ConversionWord, доступна с помощью макета EnhancedPatternLayout.
Из javadoc
... For example, for the category name "alpha.beta.gamma" the pattern %c{2} will output the last two elements ("beta.gamma"), %c{-2} will remove two elements leaving "gamma", %c{1.} will output "a.b.gamma" ...
Я использую JBoss и должен был обновить log4j и использовать приведенный выше макет.
Ответ 2
Artifactory использует Logback:
Проекты, которые, как известно, полагаются на logback:
[...]
Artifactory
у которого есть эта хорошая функция, называемая Конверсионное Word:
Conversion specifier | Logger name | Result
%logger | mainPackage.sub.sample.Bar | mainPackage.sub.sample.Bar
%logger{0} | mainPackage.sub.sample.Bar | Bar
%logger{5} | mainPackage.sub.sample.Bar | m.s.s.Bar
%logger{10} | mainPackage.sub.sample.Bar | m.s.s.Bar
%logger{15} | mainPackage.sub.sample.Bar | m.s.sample.Bar
%logger{16} | mainPackage.sub.sample.Bar | m.sub.sample.Bar
%logger{26} | mainPackage.sub.sample.Bar | mainPackage.sub.sample.Bar
* Я пропустил таблицы в SO markdown sooo much...
Ответ 3
Похоже, вам нужно реализовать свой собственный Appender
, чтобы сделать эту работу в log4j.