【Log】SLF4J簡單入門


SLF4J介紹

  SLF4J,即簡單日志門面(Simple Logging Facade for Java),不是具體的日志解決方案,它只服務於各種各樣的日志系統。按照官方的說法,SLF4J是一個用於日志系統的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日志系統。實際上,SLF4J所提供的核心API是一些接口以及一個LoggerFactory的工廠類。從某種程度上,SLF4J有點類似JDBC,不過比JDBC更簡單,在JDBC中,你需要指定驅動程序,而在使用SLF4J的時候,不需要在代碼中或配置文件中指定你打算使用那個具體的日志系統。如同使用JDBC基本不用考慮具體數據庫一樣,SLF4J提供了統一的記錄日志的接口,只要按照其提供的方法記錄即可,最終日志的格式、記錄級別、輸出方式等通過具體日志系統的配置來實現,因此可以在應用中靈活切換日志系統。

SLF4J使用

  要想使用slf4j需要引入slf4j-api-x.x.x.jar,而 slf4j-api-x.x.x.jar 它提供對外一致的API接口,其本身不提供日志實現。要結合其他日志系統使用

  1. slf4j-jdk14-x.x.x.jar是為java.util.logging日志系統提供的驅動
  2. slf4j-simple-x.x.x.jar直接綁定System.err日志系統
  3. lf4j-jcl-x.x.x.jar是為commons-logging日志系統提供的驅動
  4. logback-classic-x.x.x.jar是為logback日志系統提供的驅動

  這里介紹System.err日志系統

  • 首先新建一個maven工程,在pom文件中引入jar包(slf4j-api-x.x.x.jar,slf4j-simple-x.x.x.jar)
     1 <dependency>
     2     <groupId>org.slf4j</groupId>
     3     <artifactId>slf4j-api</artifactId>
     4     <version>1.7.5</version>
     5 </dependency>
     6 
     7 <dependency>
     8     <groupId>org.slf4j</groupId>
     9     <artifactId>slf4j-simple</artifactId>
    10     <version>1.7.5</version>
    11 </dependency>
  • 測試類
     1 package com.test;
     2 
     3 import java.util.Date;
     4 
     5 import org.slf4j.Logger;
     6 import org.slf4j.LoggerFactory;
     7 
     8 
     9 public class Test {
    10     
    11     final static  Logger logger  =  LoggerFactory.getLogger(Test.class );
    12 
    13     public static void main(String[] args) throws InterruptedException {
    14 
    15         logger.debug( " This time is {}" ,  new Date().toString());
    16         
    17         logger.info( " This time is {}" ,  new Date().toString());
    18         
    19         logger.warn( " This time is {}" ,  new Date().toString());
    20         
    21         logger.error( " This time is {}" ,  new Date().toString());
    22         
    23     }
    24 
    25 }

  運行結果: 

1 [main] INFO com.test.Test -  This time is Tue Jul 12 17:23:52 CST 2016
2 [main] WARN com.test.Test -  This time is Tue Jul 12 17:23:52 CST 2016
3 [main] ERROR com.test.Test -  This time is Tue Jul 12 17:23:52 CST 2016

  備注代碼:logger.info( " This time is {}" ,  new Date().toString());

  此方法中'{}'為占位符,后面的參數會替換它


免責聲明!

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



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