SpringBoot使用logback实现日志按天滚动
来源:互联网 发布:关闭端口的命令 编辑:程序博客网 时间:2024/06/05 03:26
需求
那有的同学要问了,不能这样写吗
<level>INFO</level>
这样不是只拦截INFO日志了吗?
不对!
这就得说一下日志级别了
DEBUG ->INFO -> WARN ->ERROR
如果你设置的日志级别是INFO,那么是会拦截ERROR日志的哦。
- 日志按天滚动分割
- info和error日志输出到不同文件
在这里,我不去深究的讨论各个日志框架的优劣,网上的对比文章实在太多了。我只说以下几点理由。
- Logback是Log4j的升级版,作者为同一个人,作者不想再去改Log4j,所以写了Logbak
- 使用日志框架的最佳实践是选择一款日志门面+一款日志实现,这里选择Slf4j+Logback, Slf4j作者也是Logbak的作者
- SpringBoot从1.4版本开始,内置的日志框架就是Logback
可以直接在applicatin.properties或者application.yml中配置
以在application.yml中配置为例:
logging: pattern: console: "%d - %msg%n" file: /var/log/tomcat/sell.log level: com.imooc.LoggerTest: debug
可以发现,这种配置方式简单,但能实现的功能也很局限,只能
- 定制输出格式
- 输出文件的路径
- 指定某个包下的日志级别
如果需要完成我们的需求,这就得用第二种配置了
Logback在SpringBoot中配置方式二在resource目录下新建logback-spring.xml, 内容如下:
<?xml version="1.0" encoding="utf-8"?><configuration> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d - %msg%n</pattern> </layout> </appender> <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> <encoder> <pattern>%msg%n</pattern> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>/var/log/tomcat/sell/info.%d.log</fileNamePattern> </rollingPolicy> </appender> <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <pattern>%msg%n</pattern> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>/var/log/tomcat/sell/error.%d.log</fileNamePattern> </rollingPolicy> </appender> <root level="info"> <appender-ref ref="consoleLog" /> <appender-ref ref="fileInfoLog" /> <appender-ref ref="fileErrorLog" /> </root></configuration>
每一个appender你可以理解为一个日志处理策略。
第一个appender的name="consoleLog", 名字是自己随意取的,取这个名字,表示这个策略用于控制台的日志。
我们重点看第二个和第三个appender
- 因为要把info和error日志输入到不同文件, 所以我们分别建了两个appender。
- rollingPolicy是滚动策略,这里我们设置按时间滚动
filter是日志的过滤方式,我们在fileInfoLog里做了如下过滤
<?xml version="1.0"?><level>ERROR</level><onMatch>DENY</onMatch><onMismatch>ACCEPT</onMismatch>上述代码翻译之后:拦截ERROR级别的日志。如果匹配到了,则禁用处理。如果不匹配,则接受,开始处理日志。
那有的同学要问了,不能这样写吗
<level>INFO</level>
这样不是只拦截INFO日志了吗?
不对!
这就得说一下日志级别了
DEBUG ->INFO -> WARN ->ERROR
如果你设置的日志级别是INFO,那么是会拦截ERROR日志的哦。
阅读全文
0 0
- SpringBoot使用logback实现日志按天滚动
- SpringBoot日志logback的使用
- SpringBoot学习:使用logback进行日志记录
- springBoot中Logback日志的使用
- SpringBoot Logback日志配置
- springboot logback日志配置
- springboot整合logback日志
- springboot logback 日志配置。
- springboot logback日志
- springboot logback 日志
- Springboot logback日志配置
- SpringBoot+LogBack 日志配置
- springboot整合日志logback
- 使用logback实现日志记录
- logback触发器日志滚动
- SpringBoot学习——使用logback配置日志
- SpringBoot使用logback输出日志并打印sql信息
- SpringBoot使用logback输出日志并打印sql信息
- OpenGL内核模式学习笔记第1篇——开发环境的配置
- 静态工厂方法代替构造器
- 记录我的第一篇
- android模拟器failed to make and chown /acct/uid: Read-only file system的原因
- Python中的NULL和None
- SpringBoot使用logback实现日志按天滚动
- 各种查找算法-Java-顺序、二分、二叉排序树查找
- 2002: [Hnoi2010]Bounce 弹飞绵羊
- Ubuntu16.04安装后的工作
- hdu 5816 Hearthstone 状压DP+记忆化搜索
- 抽奖活动(一)-Alias算法
- VMware安装Ubuntu及VMware Tools实用总结
- 《大话设计模式》学习总结
- 搭建springMVC环境并且写一个helloWorld实例