【发布时间】:2016-01-25 08:38:47
【问题描述】:
什么被认为是更好的做法? 如果我编码为 SLF4J,我会获得 Log4J2 的所有好处吗? 会影响性能吗? 对于 JCL,上述所有问题的答案是否相同?
【问题讨论】:
-
@Thilo - 这部分回答了我的问题。我会根据我的 API 层获得不同的性能吗?
-
实际上,投票赞成的答案是关于 log4j 1.2(不是 2.0)。也许忽略那个线程......我想知道是否有人在许多 Java 日志框架之间的混淆成本上投入了大量资金。
-
简而言之,SLF4J 是首选。性能几乎完全取决于仍将使用 LOG4J2 xml 文件完成的配置。 SLF4J 和 LOG4J2 都支持参数化日志记录,应该使用它来提高性能。
-
使用 SLF4J 的唯一真正缺点也可以被认为是一种奖励。 api 更简单,灵活性较低(即,没有自定义日志级别,所有对象都必须参数化,throwables 必须是最后一个 arg)等等。从处理一个非常大的日志项目的经验来说,虽然你失去了一些好处使用 log4j2 api 的灵活性,您可以通过更简单的实现来获得它,这在未来更容易重构。
标签: logging slf4j log4j2 apache-commons-logging