Spring Boot 系列 | 第三篇:日志配置
前言
本文不算原创(参考了网上相关博客资料),也不做任何声明,仅仅是作为笔者的笔记记录。
Spring Boot
在内部日志中使用Commons Logging
,但是默认配置也提供了常用日志的支持,如:Java Util Logging
,Log4j
,Log4j2
和Loglack
,每种Logger
都可以通过使用配置在控制台或文件输出日志。
本文的目录如下:
- 默认日志介绍
- 日志格式
- 文件输出
- 级别控制
- 自定义日志配置
- 使用`log4j“
默认日志
默认情况下,Spring Boot
通常都会依赖spring-boot-starter
这个starter
会依赖了spring-boot-starter-logging
,spring-boot-starter-logging
是默认使用logback来记录日志。所以Spring Boot
默认情况下大多使用logback来记录日志。(spring-boot-starter-web
依赖spring-boot-starter
,所以同样的道理)
日志格式
在启动Spring Boot
项目的时候,可以看到很多输出。如下:
2018-02-07 11:07:18.868 INFO 22920 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication on wangjianfengdeiMac.local with PID 22920 (/Users/wangjianfeng/javaworkspace/demo/target/classes started by wangjianfeng in /Users/wangjianfeng/javaworkspace/demo)
输出的内容描述:
- 时间日期
- 日志级别
- 进程ID
- — 标识日志开始
- 线程名
logger
名(通常使用源代码类名)- 日志内容
默认情况下,日志会在控制台输出。Spring Boot
默认配置的日志输出级别为:ERROR/WARN/INFO
我们可以通过两种方式切换到debug级别
- 在运行命令后面加入
--debug
- 在
application.properties
中配置debug=true
,会输出更多内容
文件输出
如果需要把日志输出到文件,需要添加一下配置:
- logging.file = xxx 设置文件路径
- logging.path = xxx 设置文件目录
级别控制
可通过application.properties
配置日志级别
配置格式为:logging.level.*=LEVEL
logging.level.*
日志级别的前缀,*
为包名或者Logger
名LEVEL
日志级别,TRACT,DEBUG,INFO,WARN,ERROR,FATAL,OFF
自定义日志配置
默认的日志可以通过application.properties
配置,也可以通过外部配置文件来配置,根据不同的日志系统,Spring Boot
可以在classpath
中找到以下文件名来加载。
logback:logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy
log4j:log4j-spring.xml,log4j.xml,log4j-spring.properties,log4j.properties
官方推荐使用带 -spring
的文件名。
如果需要配置输出格式,可以在外部配置文件或者application.properties
中指定以下参数
logging.pattern.console
:定义输出到控制台的样式logging.pattern.file
:定义输出到文件的样式
更多的配置请参考文档
使用log4j
有很多情况下,大家喜欢使用log4j
来记录日志,此时需要配置log4j
为默认的logger
,配置方式如下:
添加
log4j
依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>
去除
logback
依赖,如果不去除会冲突,如果依赖了spring-boot-starter
或者spring-boot-starter-web
则需要添加一下代码。<exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions>
添加配置文件,在
resource
文件夹下添加log4j.properties
- 配置
log4j
,这里有一篇博客写得很详细,如果需要更多信息,请查看文档