slf4j, log4j, logback, java.util.Logging关系

原文链接:https://www.oschina.net/translate/why-use-sl4j-over-log4j-for-logging

根据这个得到一些体会,如有错误,欢迎指正:

1.slf4j是日志的整体抽象层,log4j,logback,java.util.Logging都是不同的实现类,需要哪种实现方式直接引入对应的jar就行

2.SLF4J有个占位功能,类似String.format()方法中的%s

下面是你用Log4j时的做法,当然这并不好玩而且它增加了不必要的公式化的代码,减少了代码的可读性。

if (logger.isDebugEnabled()) {
        logger.debug("Processing trade with id: " + id + " symbol: " + symbol);
}

而如果你使用SLF4J,你可以使用更简洁的格式达到同样的效果,如下:

logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);

3.假如使用log4j,各个jar功能如下:

slf4j-api-1.6.1.jar - JAR for SLF4J API
log4j-1.2.16.jar - JAR for Log4J API
slf4j-log4j12-1.6.1.jar - Log4J Adapter for SLF4J

4.如果使用maven管理,可以只引入如下,里面依赖会自动引入其余两个

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.1</version>
</dependency> 
发布了20 篇原创文章 · 获赞 7 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章