【发布时间】:2013-08-25 19:56:04
【问题描述】:
情况:我们使用带有异步追加器的 SLF4j 和 Log4j 2 问题是我们还使用了使用 java.util.Logging 的 JSF。我看到关于使用jul-to-slf4j 性能的各种令人发指的警告,因为你不能只是放弃java.util.Logging,因为它在JDK 中,因为......这是@987654321 的文档@ 说:
"...因此,j.u.l. 到 SLF4J 的转换会严重增加禁用日志语句的成本(60 倍或 6000%)并显着影响启用日志语句的性能(总体增加 20%) . 从 logback 版本 0.9.25 开始,可以在 LevelChangePropagator 的帮助下完全消除禁用日志语句的 60 倍转换开销。”
请注意,无论如何,使用 SLF4J + java.util.Logging,您会遇到 20% 的性能损失,但您可以通过使用最新版本来放弃 60 倍的提升。
20% 是不可接受的。
欢迎和鼓励其他想法,但我想到的解决方案是根本不合并java.util.Logging。相反,请使用一个单独的配置文件,该文件指向与其他所有内容相同的日志文件。有没有人知道或知道我在哪里可以找到如何做到这一点的例子,假设这样做并不意味着所有创造的结束?
如果有更好的方法,我愿意接受。
【问题讨论】:
-
您只能通过使用最新版本的 logback 来放弃 60 倍的增长。由于您使用 Log4j 2 作为具体的日志记录实现,因此在您的情况下并非如此,并且可能是不使用网桥的另一个原因。除此之外,我无法就如何做提供任何建议,因为我有幸不必与 j.u.l 打交道,我希望它保持这种状态。
-
是的,我看到了,但实际上在文档中更进一步,我发现了一个地方,它说在最近的版本中,来自 logback 的代码被带入了 SLF4J,所以它不再是一个问题.不过仍然坚持 20%。
标签: log4j slf4j java.util.logging