springboot日志框架學習------slf4j和log4j2


springboot日志框架學習------slf4j和log4j2

日志框架的作用,日志框架就是用來記錄系統的一些行為的,可以通過日志發現一些問題,在出現問題之后日志是好的一個幫手。

市面上的日志框架大概有這些:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j....等等

SLF4j(Simple Logging Facade for Java) 他是一個抽象的門面,需要實現

Log4j JUL(java.util.logging) Log4j2 Logback都可以實現它。

上邊選一個門面(抽象層)、下邊來選一個實現;
日志門面: SLF4J;
日志實現:Logback, Log4j2;
SpringBoot:底層是Spring框架,Spring框架默認是用JCL;
SpringBoot選用 SLF4j和logback


如何將系統中所有的日志都統一到slf4j

1、將系統中其他日志框架先排除出去;
2、用中間包來替換原有的日志框架;
3、我們導入slf4j其他的實現

springboot日志關系

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring‐boot‐starter</artifactId>
</dependency>
//日志啟動器
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring‐boot‐starter‐logging</artifactId>
</dependency>

底層的依賴關系

總結:
1)、SpringBoot底層也是使用slf4j+logback的方式進行日志記錄
2)、SpringBoot也把其他的日志都替換成了slf4j;

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

日志的使用

springboot默認已經幫我們配置好了日志,日志級別為trace<debug<info<warn<error

默認的日志級別為inifo,日志輸出只有在當前級別以及更高級別的才輸出。

例如:

//日志記錄器
Logger logger = LoggerFactory.getLogger(getClass());
logger.info("這是info日志...");

日志輸出格式:
%d表示日期時間,
%thread表示線程名,
%‐5level:級別從左顯示5個字符寬度
%logger{50} 表示logger名字最長50個字符,否則按照句點分割。
%msg:日志消息,
%n是換行符
例如:
%d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n

springboot修改日志的默認配置

logging.level.com.atguigu=trace #修改日志級別
#logging.path=
# 不指定路徑在當前項目下生成springboot.log日志
# 可以指定完整的路徑;
#logging.file=G:/springboot.log
# 在當前磁盤的根路徑下創建spring文件夾和里面的log文件夾;使用 spring.log 作為默認文件
logging.path=/spring/log
# 在控制台輸出的日志的格式
logging.pattern.console=%d{yyyy‐MM‐dd} [%thread] %‐5level %logger{50} ‐ %msg%n
# 指定文件中日志輸出的格式
logging.pattern.file=%d{yyyy‐MM‐dd} === [%thread] === %‐5level === %logger{50} ==== %msg%n


免責聲明!

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



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