SpringBoot學習(2)
阿新 • • 發佈:2018-12-05
三、日誌
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 staticvoid 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