如何在使用log4j生成的日志中缩写/缩短包名称。即代替com.longpackage.anotherpackage.lastpackage.MyClass
我想要c.l.a.l.MyClass
。我在Artifactory日志中已经看到了这一点,但无法想象如何使用log4j来实现这一点。
答案 0 :(得分:48)
事实证明,毕竟使用log4j是可行的(使用v1.2.16测试),感谢Tomasz Nurkiewicz指向我LogBack。可以使用EnhancedPatternLayout布局提供ConversionWord功能。
来自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并使用上面的布局。
答案 1 :(得分:35)
Artifactory使用Logback:
已知依赖于logback的项目:
[...]
Artifactory的
有一个名为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|
*我错过SO标记中的表格太多了......