
1. 日志概念所谓日志就是程序在运行的过程中按照时间顺序主动以标准化格式记录所发生的事情使程序员可以更好的掌控自己代码2. 如何用SLF4J打印日志SpringBoot中内置了SLF4J日志框架可以直接调用。它采用了门面模式通过SLF4J位日志的门面进行设计具体的子系统有:JUL、log4j i/o、logback2.1创建对象代码实例我们通过SLF4J包下的Logger类进行创建对象对象可以从LoggerFactory日志工厂中获取getLogger()方法中传入的值为你要打印日志的类RestController public class LogTest { RequestMapping(/Test) public String Test(){ Logger logger LoggerFactory.getLogger(LogTest.class); logger.info(打印日志); return 日志打印; } }输出2026-03-15T00:39:45.69808:00为该日志的时间信息具体到毫秒 INFO为日志的级别21052为进程名[spring_backgammon]为项目名[nio-8080-exec-6]为线程名,com.examp- le.testapi.controller.LogTest为打印这条日志的类路径接下来才是具体的日志信息2.2使用注解如果使用创建对象的形式打印日志在不同类下都要创建对应的对象相比通过一个注解解决比较复杂1. 添加lombok依赖dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency2. 代码实例相比之下只是通过一个slf4j注解替换了Logger logger LoggerFactory. getLogger(LogTest.class)Slf4j RestController public class LogTest { RequestMapping(/Test) public String Test(){ log.info(打印日志); return 日志打印; } }3. 日志的等级⽇志的级别从⾼到低依次为:FATAL、ERROR、WARN、INFO、DEBUG、TRACE•FATAL: 致命信息表⽰需要⽴即被处理的系统级错误.•ERROR: 错误信息, 级别较⾼的错误⽇志信息, 但仍然不影响系统的继续运⾏.•WARN: 警告信息, 不影响使⽤, 但需要注意的问题•INFO: 普通信息, ⽤于记录应⽤程序正常运⾏时的⼀些信息, 例如系统启动完成、请求处理完成等.默认使用•DEBUG: 调试信息, 需要调试时候的关键信息打印.•TRACE: 追踪信息, ⽐DEBUG更细粒度的信息事件(除⾮有特殊⽤意否则请使⽤DEBUG级别替代)4.日志配置我们可以通过修改日志的配置信息进而实现修改日志的默认级别、日志的持久化处理、甚至是日志的打印格式等4.1日志的持久化在一个项目中我们可以通过修改配置信息实现通过追加写的形式把全部日志存放在文件中从而实现日志的持久化配置项作用示例值logging.file.name指定日志文件的完整路径 文件名优先级高于logging.file.path./logs/app.loglogging.file.path指定日志文件的存储目录文件名将默认设为spring.log./logs或/var/log实例Spring项目可以直接在配置文件中修改这里通过yml形式进行演示#日志打印配置 logging: file: name: spring-blog.log path: ./logs4.2 日志文件分割但随着时间的推移日志信息回越来越多为了方便后续的查看我们需要对其进行整理我们可以通过文件的大小进行分割文件当文件达到我们设置的大小时自动生成新的一个文件同时我们还可以对文件的命名格式进行设定1. 设置文件大小默认值为默认1MBlogging: logback: rollingpolicy: max-file-size: 1B2. 设置文件名格默认值为${LOG_FILE}.%d{yyyy-MM-dd}.%i.gzlogging: logback: rollingpolicy: max-file-size: 1B(默认1MB) file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i4.3配置⽇志格式默认日志的格式如下分别为时间戳、日志级别、进程ID、线程名、打印类的路径、打印内容修改日志格式1. 打印控制台⽇志格式logging: pattern: console: %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n2. 打印⽇志⽂件中的⽇志格式logging: pattern: file: %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n3. 设置打印日志的级别控制台日志打印的默认是INFO控制台只会打印级别大于等于它的日志级别也就是看不到TRACE和DEBUG日志级别但也可以通过配置文件修改级别logging: level: root: TRACE (默认是INFO)想了解更多日志配置信息可以去Spring文档