您的位置:首页 > 编程语言 > Java开发

SpringBoot基础教程2-1-4 日志规范-基础配置详解

2018-07-13 10:11 956 查看

1. 概述

不需要任何配置,只需要添加
spring-boot-starter-web
依赖,
SpringBoot
已经为我们集成日志框架,默认使用
logback


在项目根目录使用
maven
命令
mvn dependency:tree
,查看依赖结果如下



创建主函数,运行后,可以看到,
SpringBoot
默认日志格式如下



格式解析:(默认采用颜色日志)

时间日期:精确到毫秒,可以用于排序

日志级别:
ERROR、WARN、INFO、DEBUG、TRACE


进程
ID


分隔符:采用
---
来标识日志开始部分

线程名:方括号括起来(可能会截断控制台输出)

Logger
名:通常使用源代码的类名

日志内容:我们输出的消息

2. 颜色日志

SpringBoot 2.0.3
默认开启颜色日志,判断终端是否支持
ANSI
,支持则打印颜色日志,也可以在
application.yml
文件修改
spring.output.ansi.enabled
来修改默认值

ALWAYS
: 启用
ANSI
颜色的输出。

DETECT
: 尝试检测
ANSI
着色功能是否可用(默认值)。

NEVER
: 禁用
ANSI
颜色的输出。

%clr
修改颜色。比如想使文本变为黄色 %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){yellow}。目前支持的颜色有(blue、cyan、faint、green、magenta、red、yellow)

3. 日志级别

SpringBoot
默认为我们输出的日志级别为
INFO、WARN、ERROR
,如需要输出更多日志的时候,可以通过以下方式开启

命令模式: java -jar app.jar --debug=true , 这种命令会被 SpringBoot 解析,且优先级最高

配置模式:
Chaper1-1-2
提到的配置
debug: true
该配置只对嵌入式容器、Spring、Hibernate生效

自己项目需要手动配置日志级别,配置规则:
logging.level.<logger-name>=<level>
,或者,
logging.level.<目录>=<level>


logging:
level:
# org.springframework.web目录下日志级别debug
org.springframework.web: debug
# com.mkeeper目录下日志级别info
com.mkeeper: info
# com.mkeeper.controller.off目录下日志关闭
com.mkeeper.controller.off: off

4. 日志输出格式

logging.pattern.console
: 定义输出到控制台的格式(不支持JDK Logger)

logging.pattern.file
: 定义输出到文件的格式(不支持JDK Logger)

5. 文件日志

SpringBoot
默认只输出控制台,不输出文件;通过下面配置添加文件日志输出

logging.file
将日志写入到指定的 文件 中,默认为相对路径,可以设置成绝对路径

logging.path
将名为
spring.log
写入到指定的文件夹中

logging.file.max-size
限制日志文件大小,日志文件在达到
规定大小
时进行切割,产生一个新的日志文件

logging.file.max-history
限制日志保留天数,到期自动删除

6. 推荐
@Slf4j

如果不想每次都写
private final Logger logger = LoggerFactory.getLogger(XXX.class);
可以用注解
@Slf4j
,该注解依赖
lombok
slf4j
(SpringBoot已经自动配置,不用手动添加)

@Slf4j
@RestController
public class LogController {
//如果不想每次都写private final Logger logger = LoggerFactory.getLogger(XXX.class); 可以用注解@Slf4j
//private final Logger logger = LoggerFactory.getLogger(LogController.class)

@GetMapping("/log")
public void log(){
log.debug(this.getClass().getSimpleName() + ": debug");
log.info(this.getClass().getSimpleName() + ": info");
log.warn(this.getClass().getSimpleName() + ": warn");
log.error(this.getClass().getSimpleName() + ": error");
}
}

7. 总结

推荐阅读官方文档了解更多日志配置细节,有任何建议,欢迎留言探讨,本文源码

欢迎关注博主公众号:
Java十分钟


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring Spring Boot