SLF4J和Logback日志框架詳解
本文講述SLF4J和Logback日志框架。


SLF4J是一套簡單的日志外觀模式的Java API,幫助在項目部署時對接各種日志實現。
LogBack在運行時使用JMX幫助修改日志配置,在生產狀態下無需重啟應用程序。
SLF4J
SLF4J是簡單的日志外觀模式框架,抽象了各種日志框架例如Logback、Log4j、Commons-logging和JDK自帶的logging實現接口。它使得用戶可以在部署時使用自己想要的日志框架。SLF4J是輕量級的,在性能方面幾乎是零消耗的。SLF4J沒有替代任何日志框架,它僅僅是標準日志框架的外觀模式。如果在類路徑下除了SLF4J再沒有任何日志框架,那么默認狀態是在控制臺輸出日志。
Logback
Logback是Log4j的改進版本,而且原生支持SLF4J(因為是同一作者開發的),因此從其它日志框架如Log4j或JDK的logging遷移到Logback是完全可行的。由于Logback原生支持SLF4J,因此Logback+SLF4J的組合是日志框架的最佳選擇,比SLF4J+其它日志框架的組合要快一些。而且Logback的配置可以是XML或Groovy代碼。
注意一個重要的特性,Logback通過JMX修改日志配置(比如日志級別從Debug調整到INFO),可以從JMX控制臺直接操作,無需重啟應用程序。
此外,Logback的異常堆棧跟蹤的信息,有助于調試。
java.lang.NullPointerException: null at com.fimt.poc.LoggingSample.<init>(LoggingSample.java:16) [classes/:na] at com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0]
SLF4J API用法
1. 從org.slf4j包導入Logger和LoggerFactory
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
2. 聲明日志類
private final Logger logger = LoggerFactory.getLogger(LoggingSample.class);
3. 使用debug、warn、info、error方法并跟蹤適合的參數。
所有的方法默認都使用字符串作為輸入。
logger.info("This is sample info statement");
SLF4J結合Logback
在pom.xml包含下面的依賴:它會自動包含所有的依賴包logback-core、slf4j-api……<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.0.7</version> </dependency>
SLF4J能用于現有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。
SLF4J結合Log4j
在pom.xml包含下面的依賴<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency>
SLF4J結合JUL (java.util.logging)
在pom.xml包含下面的依賴
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>1.7.2</version> </dependency>
來自:http://blog.csdn.net/chszs/article/details/8653460
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!