Cómo abreviar/acortar los nombres de los paquetes en el registro generado usando log4j. es decir, en lugar de com.longpackage.anotherpackage.lastpackage.MyClass
quiero c.l.a.l.MyClass
. Lo he visto en los registros Artifactory, pero no sé cómo lograrlo con log4j.log4j: abreviar/acortar nombres de paquetes
Respuesta
Resulta que esto es posible usando log4j después de todo (probado usando v1.2.16), gracias a Tomasz Nurkiewicz por señalarme a LogBack. La característica, ConversionWord, está disponible usando 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 "a.b.gamma" ...
estoy usando JBoss y tuvo que actualizar log4j y el uso de la disposición anterior.
Ejemplo: 'log4j.appender.stdout.layout = org.apache.log4j.EnhancedPatternLayout log4j.appender.stdout.layout.ConversionPattern =% - 5p% c [% t]:% m% {1.} n' – felvhage
El código de Java detrás de "ConversionWord"/LoggerConverter de logback es la clase TargetLengthBasedClassNameAbbreviator: https://github.com/qos-ch/logback/blob/master/logback-classic/src/main/java/ch/qos/ logback/classic/pattern/TargetLengthBasedClassNameAbbreviator.java. – buzz3791
Artifactory utiliza Logback:
Proyectos conocidos que depender de logback:
[...]
Artifactory
que tiene esta característica interesante llamada Conversion 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
* echo de menos mesas en la reducción del precio tan mucho ...
¡Agradable! "Palabra de conversión" es lo que buscaba. – asgs
parece que necesita para implementar su propia Appender
para hacer este trabajo en log4j.
- 1. log4j nombres de archivo de registro?
- 2. Espacios de nombres en paquetes R
- 3. Nombres de paquetes personalizados cxf-codegen-plugin
- 4. ¿Cómo arreglar los nombres de los paquetes en IntelliJ?
- 5. Convenciones de nombres típicos para Python directorios en Paquetes
- 6. ¿Dónde encontrar nombres y versiones de paquetes para RedHat?
- 7. Paquetes Nuget excluyen la versión en la carpeta de nombres
- 8. ¿El sufijo "dev" en los nombres de los paquetes?
- 9. ¿Cómo se asignan los nombres de los paquetes de Hackage a los nombres de 'cabal install'?
- 10. log4j alineación
- 11. ¿Cómo crear diferentes archivos de registro para diferentes paquetes utilizando el mismo log4j logger?
- 12. Asignación entre paquetes Oracle y paquetes Java
- 13. log4j stackoverflow
- 14. migrando un proyecto de log4j a slf4j + log4j
- 15. ¿Cómo resuelvo los conflictos de espacio de nombres en mis paquetes de Python con nombres de paquete de biblioteca estándar?
- 16. ¿Cuál es la diferencia entre los nombres de paquetes y los nombres de las tiendas de aplicaciones de Apple?
- 17. ¿Cómo se manejan los nombres de TLD del código de país en sus paquetes/espacios de nombres?
- 18. módulos de Python con nombres idénticos (es decir, la reutilización de los nombres de módulo estándar en paquetes)
- 19. log4j apagar registrador para algunas clases
- 20. log4j: log4j: ERROR intentado anexar al appender cerrado llamado [stdout]
- 21. log4j múltiples niveles en múltiples appenders
- 22. Python: importación de clases de paquetes en el espacio de nombres global de la consola
- 23. ¿Hay alguna forma de espacio de nombres de paquetes PL/SQL?
- 24. Registro de Java vs Log4J
- 25. Profundidad de excepción en log4j
- 26. Encontrar archivo de registro Log4J
- 27. cambio de log4j a logback
- 28. Maven error de dependencia log4j
- 29. compilación de maven - log4j error
- 30. log4j soporte en Android
Pero si no está leyendo los nombres largos de los paquetes, ¿realmente está haciendo Java? ¿De verdad estás obteniendo todo el Java Experience®? En serio, buena pregunta. – andronikus