javascript
springboot日志按照天自动输出_SpringBoot使用logback实现日志按天滚动-阿里云开发者社区...
SpringBoot使用logback實現日志按天滾動
需求
日志按天滾動分割
info和error日志輸出到不同文件
為什么使用Logback
在這里,我不去深究的討論各個日志框架的優劣,網上的對比文章實在太多了。我只說以下幾點理由。
Logback是Log4j的升級版,作者為同一個人,作者不想再去改Log4j,所以寫了Logbak
使用日志框架的最佳實踐是選擇一款日志門面+一款日志實現,這里選擇Slf4j+Logback, Slf4j作者也是Logbak的作者
SpringBoot從1.4版本開始,內置的日志框架就是Logback
Logback在SpringBoot中配置方式一
可以直接在applicatin.properties或者application.yml中配置
以在application.yml中配置為例:
[html] view plaincopy
logging:
pattern:
console:?"%d?-?%msg%n"
file:?/var/log/tomcat/sell.log
level:?com.imooc.LoggerTest:?debug
可以發現,這種配置方式簡單,但能實現的功能也很局限,只能
定制輸出格式
輸出文件的路徑
指定某個包下的日志級別
如果需要完成我們的需求,這就得用第二種配置了
Logback在SpringBoot中配置方式二
在resource目錄下新建logback-spring.xml, 內容如下:
[html] view plaincopy
%d?-?%msg%n
ERROR
DENY
ACCEPT
%msg%n
/var/log/tomcat/sell/info.%d.log
ERROR
%msg%n
/var/log/tomcat/sell/error.%d.log
每一個appender你可以理解為一個日志處理策略。
第一個appender的name="consoleLog", 名字是自己隨意取的,取這個名字,表示這個策略用于控制臺的日志。
我們重點看第二個和第三個appender
因為要把info和error日志輸入到不同文件, 所以我們分別建了兩個appender。
rollingPolicy是滾動策略,這里我們設置按時間滾動
filter是日志的過濾方式,我們在fileInfoLog里做了如下過濾
[html] view plaincopy
ERROR
DENY
ACCEPT
上述代碼翻譯之后:攔截ERROR級別的日志。如果匹配到了,則禁用處理。如果不匹配,則接受,開始處理日志。
那有的同學要問了,不能這樣寫嗎
INFO
這樣不是只攔截INFO日志了嗎?
不對!
這就得說一下日志級別了
DEBUG ->INFO -> WARN ->ERROR
如果你設置的日志級別是INFO,那么是會攔截ERROR日志的哦。
總結
以上是生活随笔為你收集整理的springboot日志按照天自动输出_SpringBoot使用logback实现日志按天滚动-阿里云开发者社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu anaconda配置环境变
- 下一篇: ThinkPHP6项目基操(8.多应用模