Java log4j:缩写/缩短包名

Java log4j:缩写/缩短包名,java,log4j,logging,Java,Log4j,Logging,如何在使用log4j生成的日志中缩写/缩短包名。i、 e.代替com.longpackage.anotherpackage.lastpackage.MyClass我想要c.l.a.l.MyClass。我已经在日志中看到了这一点,但不知道如何使用log4j实现这一点。Artifactory使用: 已知依赖logback的项目: [……] 人工制品 它有一个很好的特性,叫做: 转换说明符 记录器名称 结果 %记录器 mainPackage.sub.sample.Bar mainPackage

如何在使用log4j生成的日志中缩写/缩短包名。i、 e.代替
com.longpackage.anotherpackage.lastpackage.MyClass
我想要
c.l.a.l.MyClass
。我已经在日志中看到了这一点,但不知道如何使用log4j实现这一点。

Artifactory使用:

已知依赖logback的项目:

  • [……]

  • 人工制品

它有一个很好的特性,叫做:

转换说明符 记录器名称 结果 %记录器 mainPackage.sub.sample.Bar mainPackage.sub.sample.Bar %记录器{0} mainPackage.sub.sample.Bar 酒吧 %记录器{5} mainPackage.sub.sample.Bar m、 酒吧 %记录器{10} mainPackage.sub.sample.Bar m、 酒吧 %记录器{15} mainPackage.sub.sample.Bar m、 美国标准杆 %记录器{16} mainPackage.sub.sample.Bar m、 sub.sample.Bar %记录器{26} mainPackage.sub.sample.Bar mainPackage.sub.sample.Bar
事实证明,这是可能的,毕竟使用log4j(使用测试),感谢您向我指出。使用布局可以使用ConversionWord功能

来自javadoc

。。。例如,对于类别名称“alpha.beta.gamma”,模式%c{2}将输出最后两个元素(“beta.gamma”),%c{-2}将删除留下“gamma”的两个元素,%c{1}将输出“a.b.gamma”…


我正在使用JBoss,必须升级log4j并使用上面的布局。

但是如果你没有阅读长的包名,你真的在使用Java吗?您真的获得了整个Java体验®?说真的,这是个好问题。@andronikus在阅读日志时,通常只需要类名。如果多个类恰好具有相同的名称,那么在实践中,缩写的包名称就足以消除歧义。很好!“转换词”是我想要的,给你。这张桌子现在看起来更整洁了。希望有一天SO会支持markdown的表格式,这样看起来会更好。例如:
log4j.appender.stdout.layout=org.apache.log4j.EnhancedPatternLayout log4j.appender.stdout.layout.ConversionPattern=%-5p%c{1.}[%t]:%m%n
logback的“ConversionWord”后面的Java代码/LoggerConverter是TargetLengthBasedClassNameAbReviator类:.log4j:错误类别选项“1”。不是十进制整数。