lombok+slf4j+logback SLF4J和Logback日志框架詳解


maven 包依賴

 <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.14.8</version>
    </dependency>
    <!-- log -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.21</version>
    </dependency>
    <!--
  <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.1.7</version>
  </dependency>
    -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.1.7</version>
    </dependency>

 

 

 

SLF4J和Logback日志框架詳解

作者:chszs,轉載需注明。博客主頁:http://blog.csdn.NET/chszs

本文講述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]  view plain  copy
 
 print?
  1. java.lang.NullPointerException: null  
  2. at com.fimt.poc.LoggingSample.<init>(LoggingSample.java:16) [classes/:na]  
  3. at com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0]  

 

SLF4J API用法

1. 從org.slf4j包導入Logger和LoggerFactory

[java]  view plain  copy
 
 print?
  1. import org.slf4j.Logger;  
  2. import org.slf4j.LoggerFactory;  

 

2. 聲明日志類

[java]  view plain  copy
 
 print?
  1. private final Logger logger = LoggerFactory.getLogger(LoggingSample.class);  

 

3. 使用debug、warn、info、error方法並跟蹤適合的參數。

所有的方法默認都使用字符串作為輸入。

[java]  view plain  copy
 
 print?
  1. logger.info("This is sample info statement");  

 

SLF4J結合Logback

在pom.xml包含下面的依賴:它會自動包含所有的依賴包logback-core、slf4j-api……

[html]  view plain  copy
 
 print?
  1. <dependency>  
  2.   <groupId>ch.qos.logback</groupId>  
  3.   <artifactId>logback-classic</artifactId>  
  4.   <version>1.0.7</version>  
  5. </dependency>  


SLF4J能用於現有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。

SLF4J結合Log4j

在pom.xml包含下面的依賴

[html]  view plain  copy
 
 print?
  1. <dependency>  
  2.   <groupId>org.slf4j</groupId>  
  3.   <artifactId>slf4j-log4j12</artifactId>  
  4.   <version>1.7.2</version>  
  5. </dependency>  

 

SLF4J結合JUL (java.util.logging)

在pom.xml包含下面的依賴

 

[html]  view plain  copy
 
 print?
    1. <dependency>  
    2.   <groupId>org.slf4j</groupId>  
    3.   <artifactId>slf4j-jdk14</artifactId>  
    4.   <version>1.7.2</version>  
    5. </dependency>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM