您的位置 首页 java

java 之 SLF4J vs Log4j

哪一个在我的项目中使用 SLF4J Log4J 或两者?自从SLF4J开始投入使用并由各地的项目大量采用以来,已经有很长一段时间了。但某些事情永远不会结束。就像Java中 抽象类 和接口的区别。 SLF4j和Log4j之间的区别仍然是’伐木者’中的一个流行问题,我应该说新手伐木者吗?在SO中,仍然有关于这个主题的问题。所以现在我们在Java论文中处理它。

但是,我们详细阐述这个问题只值得一个答案。这个问题本身是错误的。 SLF4J和Log4J专注于不同的领域,它们不是相似的组件。 SLF4是一个记录门面。这个名字说明了一切。 SLF4J是Java的简单日志门面。它不是一个日志记录组件,它不会执行实际的日志记录。它只是一个底层日志记录组件的抽象层。

在Log4j的情况下,它是一个日志记录组件,它执行日志指示。从逻辑上讲,这些完全是两回事。那么什么是正确的问题。我的项目中是否需要抽象日志记录层?也就是说,我应该使用SLF4J。如果您想比较SLF4J,那么正确的比较将与Apache Commons Logging进行比较。

我应该使用SLF4J(记录抽象)吗?

  • 总是使用抽象更好!

  • 您可以根据需要更改实现,不需要绑定到依赖项。

  • 为了说清楚,如果您使用的是SLF4J和Log4j,如果需要的话,可以将Log4j与Logback等其他日志框架进行交换,而无需编译源代码。 Logback是SLF4J的参考实现。

  • 网络中的许多比较实际上都在衡量SLF4J是一种抽象。我将它看作是在Log4j上使用它的一点。 SLF4J不是Log4j的替代产品,但它与它一起工作。

  • 演出会有什么变化吗?由于已经使用日志API在性能优化方面被视为开销。这个抽象层不会增加性能的显着开销。如果您有任何数据,请分享。

  • 语法如何,SLF4J提供比Log4J更简单的语法?不要这样比较。一旦你习惯了SLF4J的语法,那么你就不必担心不同日志框架的语法。

  • 所以总而言之,如果有选择权,那么我建议你使用SLF4J。然后,使用Log4J或Logback或Java Logging的日志实现或…截至目前为止,日志记录组件与其纯粹基于选择之间没有确定的胜利者。

文章来源:智云一二三科技

文章标题:java 之 SLF4J vs Log4j

文章地址:https://www.zhihuclub.com/182770.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图