1. 程式人生 > >SpringBoot學習(2)

SpringBoot學習(2)

 

三、日誌

1、日誌框架

springboot:底層是spring框架,spring框架預設使用JCL;

springboot選用SLF4j和logback;

2、SLF4j使用

1、如何在系統中使用SLF4j

以後開發的時候,日誌記錄方法的呼叫,不應該來直接呼叫日誌的實現類,而是呼叫日誌抽象層裡面的方法;

應該給系統裡面匯入slf4j的jar包和logback的實現jar

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static
void main(String[] args) { Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.info("Hello World"); } }

圖示:

每一個日誌的實現框架都有自己的配置檔案。使用slf4j以後,配置檔案還是做成日誌實現框架的配置檔案

2、遺留問題

a(slf4j+logback):spring(commons-logging)、hibernate(jboss-logging)、Mybatis、xxxx

統一日誌記錄,即使是別的框架和我一起統一使用slf4j進行輸出?

如何讓系統中所有的日誌都統一到slf4j;

1、將系統中其他日誌框架先排除出去;

2、用中間包來替換原有的日誌框架;

3、我們匯入slf4j其他的實現

3、SpringBoot日誌關係

使用logback記錄日誌

總結:

1)、SpringBoot底層也是使用slf4j+logback的方式進行日誌記錄

2)、SpringBoot也把其他的日誌都替換成了slf4j;

3)、中間替換包?

public final class LoggerFactory {

    static final String CODES_PREFIX = "http://www.slf4j.org/codes.html";

    
static final String NO_STATICLOGGERBINDER_URL = CODES_PREFIX + "#StaticLoggerBinder";

4)、如果我們引入其他框架?一定要把這個框架的預設日誌依賴移除掉?

 spring框架用的是commons-logging;

SpringBoot能自動適配所有的日誌,而且底層使用slf4j+logback的方式記錄日誌,引入其他框架的時候,只需要把這個框架依賴的日誌框架排除掉;

4、日誌使用;

1、預設配置

 SpringBoot預設幫我們配置好了日誌;

        //不再使用sout了

        //日誌的級別;
        //由低到高  trace<debug<info<warn<error
        //可以調整需要輸出的日誌級別;日誌就只會在這個級別以後的高級別生效
        logger.trace("這是trace日誌...");
        logger.debug("這是debug日誌...");
        //springboot預設給我們使用的是info級別的,沒有指定級別的就用springboot預設規定的級別;root級別
        logger.info("這是info日誌...");
        logger.warn("這是warn日誌...");
        logger.error("這是error日誌");

 

springboot修改日誌的預設配置

properties