日志
规范详细的输出日志,有助于我们验证,排查程序出现的各种问题。
日志级别:error > warn > info > debug
Spring Boot 内置集成了SLF4j
和LogBack
。
配置
此处直接在application.yml
配置文件中添加配置即可。
刚刚在进行验证的过程中,发现同时设置了logging.file.path
和logging.file.name
以后设置的路径完全没有生效,app.log
日志文件就生成在项目的根目录下面。并没有在设置的path路径中。查阅了文档:If you want to write log files in addition to the console output you need to set a logging.file or logging.path property
后续又分别进行验证,直接设置logging.path
的值日志文件夹+日志文件名即可。但是此处会标记一个已过期的标志。
如果只设置logigng.file.path
那么将会在项目根目录下生成指定的日志文件夹,日志名为spring.log
。
#端口
server:
port: 80
#上下文
servlet:
context-path: /springboot
logging:
file:
#日志路径
path: ./log/
#日志文件
#name: app.log
# 设置 日志文件夹+文件名 (已过期)
#path:
level:
#全局设置日志等级
root: info
#自定义包日志级别
org.springframework: debug
#配置文件
#config: classpath:config/logback-spring.xml
引入日志配置文件
上述的设置日志只是了解一下大致的配置。真正项目中,我们一般使用的日志配置文件即可。
引入日志配置文件有两种。
- 按照Spring Boot的规范,在
resourece
文件夹下面放入logback.xml
文件即可。 - 假如你想把这些配置文件均放在
resource/conf
目录下面统一管理,直接在application.yml
配置文件中配置logging.config
的值
有关logback.xml
的配置文件网上有很多,随便搜一份改成自己需要日志格式的即可。
logback官网
这里面也有详细的介绍。
这里随便附一份我自己用的logback.xml
。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--按天生成日志-->
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<Prudent>true</Prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>
applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
</FileNamePattern>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} -%msg%n
</Pattern>
</layout>
</appender>
<logger name="com.demo" additivity="false">
<appender-ref ref="console"/>
<appender-ref ref="logFile" />
</logger>
<!--日志级别-->
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="logFile" />
</root>
</configuration>
附
这里的配置为自己写demo测试已经够用了。
作为扩展,在《Spring Boot 运行环境配置》有讲到。