Percy

新项目应该使用logback而不是log4j吗?

java

新项目应该使用logback代替log4j作为日志框架吗?

或换句话说:“ logback是否比log4j好(将logback的SLF4J-‘feature’放在旁边)?”


阅读 232

收藏
2020-12-02

共1个答案

一尘不染

您应该使用SLF4J + Logback进行日志记录。

它提供了整齐的功能,例如参数化消息和(与commons-logging相比)Mapped Diagnostic Context(MDC,javadoc,documentation)。

使用SLF4J可以使日志记录后端以一种非常优雅的方式互换。

此外,SLF4J支持将其他日志记录框架桥接到您将要使用的实际SLF4J实现,因此来自第三方软件的日志记录事件将显示在您的统一日志中-java.util.logging不能桥接与其他日志记录框架相同。

SLF4JBridgeHandler的javadocs中解释了桥接jul 。

我在多个项目中使用SLF4J + Logback组合具有非常好的经验,并且LOG4J的开发已经停滞了。

SLF4J还有以下缺点:

  • 它不支持varargs以与Java <1.5兼容
  • 它不支持同时使用参数化消息和异常。
  • 它不包含对LOG4J具有的嵌套诊断上下文(NDC,javadoc)的支持。
2020-12-02