本学习日志所有代码可以在gitbub上找到,切换到相应分支即可。【代码传送门】
第一节 spring boot 模块化构建项目 第二节 整合mybatisplus完成用户增删改查 第三节 整合springsecurity实现基于RBAC的用户登录 第四节 springsecurity结合jwt实现前后端分离开发 第五节 使用ResponseBodyAdvice格式化接口输出 第六节 springboot结合redis实现缓存策略 第七节 springboot结合rabbitmq实现队列消息 第八节 springboot结合rabbitmq实现异步邮件发送 第九节 利用springboot的aop实现行为日志管理 第十节 利用Quartz实现数据库定时备份 第十一节 springboot配置log输出到本地文件
前言
我们可以很方便的结合@Slf4j注解实现日志的输出,做上一些配置可以将日志保存到本地,便于排查问题,特别是针对物联网应用,一般需要记录下上传上来的数据,便于排查问题。通常我们可以用xml来进行配置。
一、加入配置
xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" debug="true">
<springProperty scope="context" name="LOG_HOME" source="log.path"/>
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
<property name="LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%5level) -- [%15.15t] %cyan(%-23.23logger{23}) : %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="INFO-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<file>${LOG_HOME}/${APP_NAME}-info.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP_NAME}-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<maxFileSize>100MB</maxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_HOME}/${APP_NAME}-error.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP_NAME}-error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<maxFileSize>100MB</maxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO-APPENDER"/>
<appender-ref ref="ERROR-APPENDER"/>
</root>
</configuration>
application.properties
# log
log.path = ./logs
spring.application.name=sbvadmin
二、测试
1.@Slf4j注解
2.log.info
总结
- 配置文件可以直接叫logback.xml或者logback-spring.xml
- root节点很重要,记得把appender都配置进去
问题
- 只创建了文件,但文件是空白
可能就是因为appender没有配置到root
代码地址
代码
参考文档: Springboot项目使用Logback把日志输出到控制台或输出到文件
|