失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > springboot日志按照天自动输出_SpringBoot使用logback实现日志按天滚动-阿里云开发者社区...

springboot日志按照天自动输出_SpringBoot使用logback实现日志按天滚动-阿里云开发者社区...

时间:2018-11-08 00:45:13

相关推荐

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实现日志按天滚动-阿里云开发者社区...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。