文章目录
- 一丶日志控制台介绍
- 二丶日志的用法
- 三丶日志级别
- 四丶配置文件参数及介绍
- 五丶@slf4j
一丶日志控制台介绍
只要引用了spring-boot-starter依赖,就无需引入日志依赖,里面自带了logging依赖,默认情况下,springBoot使用Logback来记录日志,并用INFO级别输出到控制台
二丶日志的用法
代码里我输出了5个信息,但是只打印出来3条,这和日志的级别有关系,在三模块会讲解
相关代码可以到我的代码仓库里面去找,springbootStudy->02
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author baicaizhi*/
@RestController
@RequestMapping("/logger")
public class Demo {private static final Logger logger = LoggerFactory.getLogger(Demo.class);@GetMapping("/demo")public String valueTest(){logger.trace("这是trace级别");logger.debug("这是debug级别");logger.info("这是info级别");logger.warn("这是warn级别");logger.error("这是error级别");return "成功";}
}
需要注意的是,引入的包需要时org.slf4j.Logger
三丶日志级别
- trace:级别最低;
- debug: 调试时候的关键信息打印;
- info:默认的日志级别;
- warn:警告,不影响使用;
- error:错误信息;
- fatal:致命的,因为代码异常导致程序退出执行;
trace级别最低,fatal级别最高,如果设置为trace级别,所有的级别都会输出到控制台,如果设置为error,那么只会打印error和fatal级别
四丶配置文件参数及介绍
# 日志配置
logging:# 日志级别level:root: infofile:# 日志文件名格式name: /logs/${spring.application.name}.logpattern:# 日志记录格式[组件名称] [时间戳] [日志级别] [类名.方法名] [消息文本]file: myDemo %d{yyyy-MM-dd HH:mm:ss.SSS} %p %C.%M %m %nlogback:rollingpolicy:# 根据文件大小归档,超过2KB自动归档,次日启动服务时也会自动归档file-name-pattern: /logs/%d{yyyyMMdd}/${spring.application.name}.out.log.%d{yyyy-MM-dd}.%i.gz# 最大日志文件大小(默认为10MB,这里为了测试归档,暂时设置为2KB)max-file-size: 2KB# 要保留的日志备份的总大小(默认为0B)total-size-cap: 1GB# 保存存档日志文件的最大天数(默认为7天)max-history: 20
五丶@slf4j
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
这个需要Lombok的支持,所以需要引入Lombok依赖
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author baicaizhi*/
@RestController
@RequestMapping("/logger")
@Slf4j
public class Demo {@GetMapping("/demo2")public String demo2(){log.trace("这是trace级别");log.debug("这是debug级别");log.info("这是info级别");log.warn("这是warn级别");log.error("这是error级别");return "成功";}
}