java - posicion - diccionario de abreviatura
log4j: abreviar/acortar nombres de paquetes (2)
¿Cómo puedo abreviar / acortar los nombres de los paquetes en el registro generado usando log4j? es decir, en lugar de com.longpackage.anotherpackage.lastpackage.MyClass
quiero clalMyClass
. Lo he visto en los registros de Artifactory , pero no sé cómo lograrlo con log4j.
Artifactory usa Logback :
Proyectos conocidos por confiar en logback:
[...]
Artifactory
que tiene esta bonita característica llamada LogBack :
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
* Extraño las tablas en SO markdown tan mucho ...
Resulta que esto es posible usando log4j después de todo (probado usando v1.2.16 ), gracias a Tomasz Nurkiewicz por señalarme LogBack . La característica, ConversionWord, está disponible utilizando el diseño EnhancedPatternLayout .
Desde el 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 "abgamma" ...
Estoy usando JBoss y tuve que actualizar log4j y usar el diseño anterior.