目录
LogBack(默认日志)
添加日志依赖
控制台日志输出
日志文件输出
设置日志级别
LogBack(默认日志)
默认的情况下,SpringBoot会用LogBack来记录日志,并用INFO级别输出到控制台。
添加日志依赖
以maven依赖为例,添加spring-boot-starter-logging
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
控制台日志输出
TRACE < DEBUG < INFO < WARN < ERROR < FATAL
如果设置日志级别为WARN,则低于WARN的信息都不会在控制台输出。
Spring Boot中默认配置ERROR、WARN 和INFO级别的日志输出到控制台。
我们还可以通过启动应用程序 --debug标志来启用“调用”模式(推荐开发的时候开启),有以下两种方式
- 在运行命令行后加入 --debug标志,如: $ java -jar springTest.jar --debug
- 在application.properties中配置debug=true,该属性设置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。
日志文件输出
默认情况下,Spring Boot会输出日志到控制台,但不会写到日志文件。
使用Spring Boot 喜欢在application.properties或application.yml配置,这样只能配置简单的场景,保存路径、日志格式等,复杂的场景(区分info和error的日志、每天生成一个日志文件等)满足不了,这种情况下就需要自定义配置。
logging:
pattern:
console: "%d - %msg%n" // 格式化,输出日期和内容
path: /var/log/tomcat/ // 日志输出路径,默认会生成一个spring.log文件
file: /var/log/tomcat/sell
如果要编写除控制台输出之外的日志文件,则需要再application.properties中设置logging.file或logging.path属性。
- logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:logging.file = my.log
- logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:logging.path = /var/log
如果只配置logging.file,会在项目的当前路径下生成一个xxx.log日志文件。
如果只配置logging.path,在/var/log文件夹生成一个日志文件为spring.log
注:二者不能同时使用,如若同时使用,则只有
logging.file配置
生效
默认情况下,日志文件的大小达到10MB
时会切分一次,产生新的日志文件,默认级别为:ERROR、WARN、INFO
设置日志级别
所有支持的日志记录系统都可以在Spring环境中设置记录级别(例如在application.yml中)
logging:
level:
*: LEVEL
logging.level:日志级别控制前缀,* 为包名或Logger名
LEVEL: 选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
示例:
logging:
level:
com.dudu: DEBUG //com.dudu包下所有class以DEBUG级别输出
logging:
level:
root: WARN //root日志以WARN级别输出
logging:
pattern:
console: "%d - %msg%n"
# path: /var/log/tomcat/
file: /var/log/tomcat/sell.log
level:
com.imooc.LoggerTest: debug //指定报名类型日志级别