web-dev-qa-db-fra.com

log4j: abréger / raccourcir les noms des packages

Comment puis-je abréger/raccourcir les noms de packages dans le journal généré à l'aide de log4j. c'est-à-dire au lieu de com.longpackage.anotherpackage.lastpackage.MyClass Je voudrais c.l.a.l.MyClass. J'ai vu cela dans Artifactory logs, mais je ne sais pas comment y parvenir en utilisant log4j.

46
n002213f

Il s'avère que cela est possible en utilisant log4j après tout (testé en utilisant v1.2.16 ), grâce à Tomasz Nurkiewicz pour m'avoir indiqué LogBack . La fonctionnalité, ConversionWord, est disponible en utilisant la disposition EnhancedPatternLayout .

Du 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" ...

J'utilise JBoss et j'ai dû mettre à niveau log4j et utiliser la disposition ci-dessus.

49
n002213f

Utilisations artificielles Logback :

Projets connus pour s'appuyer sur la déconnexion:

  • [...]

  • Artifactory

qui a cette belle fonctionnalité appelée 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|

* Les tables me manquent dans SO markdown sooo much ...

37
Tomasz Nurkiewicz