不是性能,而是类加载器的问题。JCL发现过程依赖于类装入器黑客在运行时查找日志记录框架,但是这种机制会导致许多问题,包括意外行为,难以调试的类装入问题,从而导致复杂性增加。Ceki(Log4J,SLF4J和Logback的作者)在使用commons-logging API(还提到了使用JCL观察到的内存泄漏问题)之前,再次在Think中抓住了这一点。
这就是创建使用静态绑定的SLF4J的原因。
Ceki是SLF4J的作者,你可能会认为他的文章有偏见,但相信我,他们没有这样做,他正在提供大量参考(证据)来证明他的观点。
总结一下:
- 是的,已知JCL已损坏,最好远离它。
- 如果要使用日志记录外观(并非所有项目都需要),请使用SLF4J。
- SLF4J为仍使用JCL的框架(如Spring :)提供了JCL到SLF4J的桥梁。
- 我发现Logback是Log4J的后继产品,是一种出色的日志记录实现。
- Logback本机实现SLF4J API。这意味着,如果你使用的是Logback,则实际上是在使用SLF4J API。



