使用Log4J2时,我应该编写SLF4J或Log4J2 API吗?

时间:2015-10-26 09:37:50

标签: logging slf4j log4j2 apache-commons-logging

什么是更好的做法? 如果我编写SLF4J代码,是否可以获得所有Log4J2的好处? 它会影响性能吗? 以上所有问题对JCL也有同样的答案吗?

1 个答案:

答案 0 :(得分:7)

作为Log4j 2上的开发人员,我当然有偏见。如果您使用Markers并过滤它们,我会推荐Log4j而不是SLF4J。 SLF4J与标记有一些并发问题。如果您想利用Log4j的支持来记录Messages而不是Strings,那么当然,您必须使用Log4j的API。如果要使用printf样式API进行日志记录,则必须使用Log4j API。如果要使用Java 8 lambda表达式,则必须使用Log4j API。

OTOH,如果您对SLF4J API非常满意并且不想要任何其他功能,那么使用它的性能成本应该很低。

我还应该注意,可以写入Log4j 2 API并将其路由到SLF4J。