概述日志的功能系统监控数据采集日志审计sout和Springboot比较之前一直都是通过sout来打印日志,但是SpringBoot项目启动默认就会打印日志,那么我们自己打印的日志和SpringBoot打印的日志有什么不同呢?RestController RequestMapping(/logger) public class LoggerController { RequestMapping(/print) public String print(){ System.out.println(打印日志); return 日志打印成功; } }我们通过sout打印的日志就比SpringBoot打印的日志就少了很多的信息,所以SpringBoot内置了日志框架Slf4j,我们在程序直接调用Slf4j来输出日志日志使用打印日志打印日志的步骤:1.在程序中的到日志对象2.使用日志对象写出想要打印的内容private static final Logger logger LoggerFactory.getLogger(LoggerController.class); RequestMapping(/print) public String print(){ logger.info(SpringBoot打印的日志); System.out.println(打印日志); return 日志打印成功;日志框架Slf4j框架不是日志的真正实现门面模式(外观模式)门面模式:提供了一个向外的统一接口,用来访问子系统的接口,让子系统更加方便去使用引入Sjl4f框架即日志门面,应用程序和日志框架就有了统一的API接口日志格式日志级别日志配置配置日志级别fatal(致命信息,既然已经严重程度是非常大的,就已经不需要我们去观察)errorwarninfodebugtrace配置整体的日志级别logging: level: root: info配置具体某个包或者类的日志级别logging: level: root: trace com.Kon.demo.controller: trace日志持久化绝对路径和相对路径都是可以的file: path: logger/ name: logger2/springboot.log注:1.name不仅可以指出路径还可以对文件进行命名2.如果两个存在,以file.name为准配置日志文件分割日志太多不好查看就需要进行分割logback: rollingpolicy: max-file-size: 1MB file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i配置日志格式pattern: console: %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n file: %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n更简单的日志输出每次进行日志输出就要使用private static final Logger logger LoggerFactory.getLogger(LoggerController.class);很繁琐,我们现在只需要使用一个注释就可以解决Slf4j RestController RequestMapping(/logger) public class LoggerController { RequestMapping(/print) public String print(){ log.error(打印 error 的日志); log.warn(打印 warn 的日志); log.info(打印 info 的日志); log.debug(打印 debug 的日志); log.trace(打印 trace 的日志); System.out.println(打印日志); return 日志打印成功; } }