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十分钟
相关文章推荐
- SpringBoot基础教程2-1-5 日志规范-logback配置详解
- SpringBoot基础教程2-1-6 日志规范-使用AOP统一处理Web日志
- Spring Boot基础教程5-日志配置-logback和log4j2
- Spring Boot基础教程——日志配置-logback和log4j2
- 详解Spring Boot 使用slf4j+logback记录日志配置
- SpringBoot初始教程之Servlet、Filter、Listener配置详解
- Spring基础学习教程(Spring配置文件详解)-03
- Spring Boot教程(二)--- 推荐的基础 POM 文件和自动配置
- Spring Boot日志配置详解
- Spring Boot基础3-配置文件详解:Properties和YAML
- springboot配置内存数据库H2教程详解
- 【SpringBoot教程五】:SpringBoot+LogBack日志配置
- SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
- Spring 基础教程之四:JavaBean基本配置详解
- SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
- (转) SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
- 详解Spring Boot配置使用Logback进行日志记录的实战
- spring boot 日志配置详解
- Spring Boot系列教程六:日志输出配置log4j2
- Spring Boot基础 - application.properties配置详解 - 03