前面一篇文章我們搭建了springboot的基本框架,實現了增刪改查操作。
logback的使用有兩種方式,一是通過簡單的系統配置,二是通過自定義配置的方式,今天這篇文章簡單介紹一下通過系統配置方式實現日志記錄。
0.logback
在springboot中,默認使用logback作為系統日志實現的框架,將日志輸出到控制臺,不會記錄到日志文件。
在springboot中使用logback不需要添加額外的依賴,因為在spring-boot-starter或者spring-boot-starter-web中已經包含了logback的依賴。
1.系統方式控制臺輸出
日志級別 trace<debug<info<warn<error<fatal。默認級別為info,即默認打印info及其以上級別的日志,不區分大小寫。
因為springboot中自帶,所以我們可以直接添加代碼就可以。
private static final Log logger = LogFactory.getLog(SpringApplication.class);

通過上面的代碼就可以看出,springboot的默認級別info以上的全部都輸出了,但是這種方式只能實習控制臺輸出,不能將日志進行保存。
那么我們考慮實現持久化。
2.系統方式實現持久化
上面那種只在控制臺輸出的日志不方便保存和記錄,所以我們要進行持久化,讓日志保存下來。
我們需要修改application.properties或 application.yml 文件,因為我上一篇文章用的是application.yml文件,那么我們就修改這個文件:
# 日志配置 # 日志配置 logging: file: #配置日志輸出的文件 path: log1234 #日志輸出的位置,默認是項目的根目錄,會自動生成文件夾,而且默認狀態日志名字都叫spring.log level: # 配置輸出日志級別 root: debug #設置整個項目的日志輸出級別默認info(root表示整個項目)
上面這個簡單的配置就可以實現日志持久化。我們重啟項目,訪問相應接口,
首先看控制臺輸出:

然后找項目目錄,發現新建了一個文件夾,文件夾名稱就是我們剛才自定義的

我們打開這個文件夾,找到里面的spring.log文件,打開后可以發現我們剛才的輸出日志。

3.優化
上面的配置方式比較簡單,我們可以進行一些優化,比如我們可以加入日志的輸出格式:
# 日志配置 logging: pattern: #配置日志輸出格式 file: "%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} === - %msg%n" file: #配置日志輸出的文件 path: log1234 #日志輸出的位置,默認是項目的根目錄,會自動生成文件夾,而且默認狀態日志名字都叫spring.log level: # 配置輸出日志級別 root: debug #設置整個項目的日志輸出級別默認info(root表示整個項目)
對于日志輸出格式的解釋如下:
# 日志輸出格式: # %d表示日期時間, # %thread表示線程名, # %-5level:級別從左顯示5個字符寬度 # %logger{50} 表示logger名字最長50個字符,否則按照句點分割。 # %msg:日志消息, # %n是換行符 # %clr(對項){顏色名} 配置該項的顏色 #只在控制臺有作用 # ${PID:- } 進程號 # %d{yyyy-MM-dd HH:mm:ss.SSS} %clr(%-5level){green} %clr(${PID:- }){magenta} [ %clr(%thread){red}] --- %clr(%logger{36}){blue} : %msg%n #系統默認配置
file中除了可以配置path還可以配置name,效果基本一樣,如果兩個同時配置,那么name生效。
level中也可以繼續修改,比如我們可以規定某個具體的包下執行的日志級別不同,那么就可以參考下面這樣設置:
# 日志配置 logging: pattern: #配置日志輸出格式 file: "%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} === - %msg%n" file: #配置日志輸出的文件 path: log1234 #日志輸出的位置,默認是項目的根目錄,會自動生成文件夾,而且默認狀態日志名字都叫spring.log level: # 配置輸出日志級別 root: debug #設置整個項目的日志輸出級別默認info(root表示整個項目) site.longkui.app.mapper: INFO
注意,替換成自己項目的包名。