Springboot中的默認日志框架配置詳解
默認日志框架–配置全解
#日志記錄
logging:
#日志級別
level:
#可以調(diào)整不同目錄的日志級別(注意:必須指定包,否則報錯)
root: info
com.cd.example.one: trace
com.cd.example.two: debug
com.cd.example.three: info
#日志文件
file:
#日志文件完整路徑(包含日志文件名)
name: D:\idea\logs\example-loggin.log
#日志文件目錄路徑(spring boot默認使用spring.log作為日志文件)
#path: D:\idea\log
#文件大?。J10MB)
max-size: 10MB
#文件保存周期(默認7天,七天之后就會刪除)
max-history: 7
#日志輸出格式
pattern:
#在控制臺輸出的日志格式
console: -%d{yyyy-MM-dd HH:mm:ss} - %clr(%-5level) - [%thread] - %logger{50} -- %clr(%msg) %n
#在文件輸出的日志格式
file: '%d{yyyy-MM-dd hh:mm:ss} %-5level [%thread] %logger{50} -- %msg %n'
#spring boot主配置
spring:
#開啟控制臺日志彩色輸出功能
output:
ansi:
enabled: always日志格式
#日志記錄
logging:
#日志輸出格式
pattern:
#在控制臺輸出的日志格式
console: -%d{yyyy-MM-dd HH:mm:ss} - %-5level - [%thread] - %logger{50} -- %msg %n
#在文件輸出的日志格式
file: '%d{yyyy-MM-dd hh:mm} %-5level [%thread] %logger{50} -- %msg %n'日志輸出格式
- %d 日志輸出時間
- %-5level 日志級別,并且使5個字符靠左對齊(從左顯示5個字符寬度)
- %thread 線程名
- %logger{50} 日志輸出者名字(全類名),最長50個字符,否則按照句點分隔
- %msg 日志消息
- %n 換行符


配置日志格式時遇到的異常:
Caused by: while scanning for the next token found character ‘%’ that cannot start any token. (Do not use % for indentation) in ‘reader’, line 26, column 14: console: %d{yyyy-MM-dd HH:mm:ss} %-5level …
異常原因:
yml配置文件中(縮進不能使用%開頭),而配置logging.pattern.console屬性值時以%開頭了,所以報錯
解決方案:
使用''包裹起來 或者 在首個%前隨便加些字符(只要不讓%開頭即可)
將
logging:
#日志輸出格式
pattern:
#在控制臺輸出的日志格式
console: %d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} -- %msg %n
改成
logging:
#日志輸出格式
pattern:
#在控制臺輸出的日志格式
console: '%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} -- %msg %n'
或者改成
logging:
#日志輸出格式
pattern:
#在控制臺輸出的日志格式
console: -%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} -- %msg %n日志級別
1) level有七個級別,由低到高: trace < debug < info < warn < error < fatal < off
2) spring boot默認使用info日志級別,如果我們不配置-則使用默認該級別
3)只有指定級別及更高級別的日志會生效,低于指定級別的日志不會生效
#日志記錄
logging:
#日志級別
level:
#可以調(diào)整不同目錄的日志級別(注意:必須指定包,否則報錯)
root: info
com.cd.example.one: trace
com.cd.example.two: debug
com.cd.example.three: info日志輸出到控制臺
spring boot日志默認會輸出到控制臺,所以并不需要我們做過多配置。但不過不喜歡控制臺默認日志格式,則可以使用 logging.pattern.console 屬性配置
#日志記錄
logging:
#日志輸出格式
pattern:
#在控制臺輸出的日志格式
console: -%d{yyyy-MM-dd HH:mm:ss} - %-5level - [%thread] - %logger{50} -- %msg %n
控制臺輸出日志高亮顯示
1)控制臺輸出默認是全黑顯示,為了提高可讀性,我們可以配置日志高亮顯示
2)配置 spring.output.ansi.enabled 屬性開啟控制臺彩色輸出功能
3)配置控制臺日志格式時,使用 %clr() 彩色轉(zhuǎn)換器對輸出文本著色,也可使用 %clr(){顏色} 來指定使用的顏色(如 %clr(){blue} )
#spring boot主配置
spring:
#開啟控制臺日志彩色輸出功能
output:
ansi:
enabled: always
#日志記錄
logging:
#日志輸出格式
pattern:
#在控制臺輸出的日志格式
console: -%d{yyyy-MM-dd HH:mm:ss} - %clr(%-5level) - [%thread] - %logger{50} -- %clr(%msg) %n
注意:輸出到文件的日志格是無法高亮的,所以不要使用 %clr() 彩色轉(zhuǎn)換器對輸出到文件的日志文本著色,不然 %clr() 會被轉(zhuǎn)義,看起來有點像亂碼的感覺
日志輸出到文件
1) 默認情況下,Spring Boot只會在控制臺中輸出日志信息,不寫入日志文件。
2)如果除了在控制臺輸出外,還想寫入日志文件中,則可以設置一個 logging.file.name 或 logging.file.path 屬性

官網(wǎng)有一段描述:
1)如果 logging.file.name 和 logging.file.path 屬性都不指定,那么日志僅在控制臺記錄。
2)指定 logging.file.name 或 logging.file.path 屬性,日志就會寫入日志文件。指定一個屬性即可,如果兩個都指定,那么只有 logging.file.name 屬性生效
3) logging.file.name 屬性用于指定日志文件完整路徑(包含文件名), logging.file.path 屬性用于指定日志文件目錄路徑(不包含文件名,使用spring boot默認日志文件名 spring.log )。
兩個屬性都是用于將日志記錄到日志文件中,那我們該使用哪個屬性呢?
1)如果不想使用spring boot默認的日志文件名 spring.log ,就使用 logging.file.name 屬性
2)如果要使用spring boot默認的日志文件名 spring.log ,就使用 spring.file.path
#日志記錄
logging:
#日志文件
file:
#日志文件完整路徑(包含日志文件名)
name: D:\idea\logs\example-logging.log
#日志文件目錄路徑(spring boot默認使用spring.log作為日志文件)
path: D:\idea\logs
#文件大?。J10MB)
max-size: 10MB
#文件保存周期(默認7天,七天之后就會刪除)
max-history: 7
#日志輸出格式
pattern:
#在文件輸出的日志格式
file: '%d{yyyy-MM-dd hh:mm:ss} %-5level [%thread] %logger{50} -- %msg %n'3)每天凌晨后,spring boot都會將前一天的日志文件進行打包壓縮
到此這篇關于Springboot中的默認日志框架配置詳解的文章就介紹到這了,更多相關Springboot默認日志配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
后端報TypeError:Cannot?read?properties?of?null?(reading?‘
這篇文章主要給大家介紹了關于后端報TypeError:Cannot?read?properties?of?null?(reading?‘xxx‘)錯誤的解決辦法,這個錯誤是開發(fā)中常見的錯誤之一,需要的朋友可以參考下2023-05-05
JAVA Iterator接口與增強for循環(huán)的實現(xiàn)
這篇文章主要介紹了JAVA Iterator接口與增強for循環(huán)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11

