Spring Boot-日志配置(超详细)
更新日志:
20170810 更新通过 application.yml传递参数到 logback 中。
[toc]
简书不支持目录,截图一张。
image.png
默认日志 Logback:
默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。
从上图可以看到,日志输出内容元素具体如下:
时间日期:精确到毫秒
日志级别:ERROR, WARN, INFO, DEBUG or TRACE
进程ID
分隔符:--- 标识实际日志的开始
线程名:方括号括起来(可能会截断控制台输出)
Logger名:通常使用源代码的类名
日志内容
添加日志依赖
假如maven依赖中添加了spring-boot-starter-logging:
org.springframework.boot
spring-boot-starter-logging
但是呢,实际开发中我们不需要直接添加该依赖。
你会发现spring-boot-starter其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback。工程中有用到了Thymeleaf,而Thymeleaf依赖包含了spring-boot-starter,最终我只要引入Thymeleaf即可。
org.springframework.boot
spring-boot-starter-thymeleaf
控制台输出
日志级别从低到高分为:
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级别。
如果每次都写这行代码会很麻烦,可以使用注解,但是需要使用lombok:
添加依赖:
//注解
compile 'org.projectlombok:lombok:1.16.18'
安装 lombok 的插件:
Go to File > Settings > Plugins
Click on Browse repositories...
Search for Lombok Plugin
Click on Install plugin
Restart Android Studio
允许注解处理,Settings -> Compiler -> Annotation Processors
可以使用{} 占位符来拼接字符串,而不需要使用““+””来连接字符串。
文件输出
默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。
使用Spring Boot喜欢在application.properties或application.yml配置,这样只能配置简单的场景,保存路径、日志格式等,复杂的场景(区分 info