一、Logback日志框架介绍
SpringBoot使用 Commons Logging 进行所有内部日志的记录,但默认配置也提供了对常用日志的支持,如 Java Util Logging,Log4J2,和Logback. 每种logger都可以通过配置使用控制台或文件输出日志内容。
Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。
二、SpringBoot与Logback
假设你使用starter启动创建SpringBoot应用,则默认已经导入了spring-boot-starter-logging的依赖,相继也就导入了logback所需要的依赖。
1、默认日志格式
于是,当我们启动SpringBoot应用时,控制台将会显示INFO级别的日志输出。
可以看到,输出内容如下:
-
日期和时间,精确到毫秒级别。
-
日志级别:INFO,【日志级别默认从高到低:ERROR,WARN,INFO,DEBUG,TRACE】。
-
进程ID
-
分隔符:来标识实际日志消息的开始。
-
线程名:用方括号括起来(在控制台输出时可能被截断)。
-
日志记录器名称:这通常是源类名称(通常缩写)。
-
日志信息
logback是没有FATAL级别的,它对应的就是ERROR。
2、控制台输出
默认的日志配置就是将日志信息显示到控制台,默认情况下,将会显示INFO级别以上的日志信息。你还可以通过使用--debug
标志启动debug模式。
$ java -jar myapp.jar --debug
使用IDEA操作可以编辑Program arguments:--debug。
在application.properties中配置debug=true同样也可以将日志级别调整到DEBUG。
3、文件输出
默认情况下,SpringBoot的日志只会输出到控制台,如果你还想输出到文件中,你需要配置logging.file.name
和logging.file.path
两个属性。
下面这个表格展示如何组合使用logging.*
来达到理想的效果:
logging.file.name |
logging.file.path |
Example | Description |
---|---|---|---|
(none) | (none) | 只会输出到控制台 | |
指定文件 | (none) | my.log |
写入指定的日志文件在当前项目目录下 |
(none) | 指定目录 | log |
在当前项目下的log目录,写入spring.log文件 |
日志文件达到10 MB时会触发滚动策略【切分】,默认情况下会记录INFO以上级别的信息。 可以使用logging.file.ma