SpringBoot - 14日志管理
SpringBoot 默认使用Logback组件作为日志管理。Logback是由 log4j创始人设计的一个开源日志组件。
在SpringBoot项目中不需要额外添加Logback依赖,在spring-boot-starter中已经包含了Logback的依赖。
(1)Logback读取配置文件
- 在classpath下查找文件 logback-test.xml
- 如果文件不存在,则查找 logback.xml
- 如果两个文件都不存在,Logback用BasicConfiguration自动对自己进行最小化配置。实现了不需要添加配置就可以输出到控制台日志信息。
(2)添加Logback配置文件
(2.1)编写logback-test.xml
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <!-- 定义日志文件的存储地址,不要使用相对路径 --> <property name="LOG_HOME" value="e://app//logs//" /> <!-- 控制台输出 --> <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender"> <!-- 日志输出编码 --> <layout class="ch.qos.logback.classic.PatternLayout"> <!--格式化: 日期 线程名 日志级别 --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern> </layout> </appender> <!--按照每天生成日志文件--> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/testLogging.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <!-- 日志文件输出的文件名 --> <fileNamePattern>${LOG_HOME}/testLogging.%i.log.zip</fileNamePattern> <minIndex>1</minIndex> <maxIndex>3</maxIndex> </rollingPolicy> <!-- 日志文件最大容量--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>10MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!--可以将日志异步到数据库--> <!-- 日志输出级别 --> <root level="INFO"> <appender-ref ref="FILE" /> <appender-ref ref="Stdout"/> </root> </configuration>
(2.2)编写Controller
@RestController @RequestMapping("/logback") public class UserController { private final static Logger logger = LoggerFactory.getLogger(UserController.class); @RequestMapping("/showInfo") public String showInfo(){ logger.info("showInfo()记录日志"); System.out.println("console......"); return "hello logback"; } }
控制台
2021-01-03 20:28:09.680 [http-nio-8080-exec-1] INFO c.b.l.controller.UserController - showInfo()记录日志
console......
日志文件: e:/app/logs/testLogging.log
2021-01-03 20:21:02.413 [http-nio-8080-exec-1] INFO c.b.l.controller.UserController - showInfo()记录日志
(2.3)修改application.yml 屏蔽指定包中的日志输出
logging:
level:
com:
bearpx: off