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