springboot的日志框架
目前流行的日志框架:logback、log4j、slf4j
从springboot的底层框架spring-boot-starter-logging,可以看出,它依赖了3个框架分别为:slf4j、log4j、logback
一、分析slf4j、log4j、logback的区别:
1.logback、log4j:是日志实现框架,就是实现怎么记录日志的
2.slf4j:提供了java中所有的日志框架的简单抽象(日志的门面设计模式),说白了就是一个日志API,它不能单独使用。
所以必须结合logback或者log4j日志框架来实现
二、springboot的日志搭配
springboot2.0默认采用slf4j+logback的日志搭配
在开发过程中,都是采用了slf4j的api去记录日志,底层的实现就是根据配置logback或者log4j日志框架。
实例:
@RestController public class TestController { private static final Logger logger = LoggerFactory.getLogger(TestController.class); @GetMapping("log") public void log(){ logger.trace("--------trace--------"); logger.debug("--------debug--------"); logger.info("--------info--------"); logger.warn("--------warn--------"); logger.error("--------error--------"); } }
运行后,日志只显示info、warn、error
三、为什么控制台的日志只输出了info、warn、error?
因为springboot默认是info级别的
properties配置:
指定包目录下的日志级别
logging.level.com.example.demo=trace
四、配置日志的生成存储路径和日志名称
在实际的开发中,不可能一直看着控制台,而且日志会非常大,瞬间就丢失。所以,我们要把日志存储在指定的目录下.
properties配置:
以下配置的效果为:项目根目录下/output/logs/spring.log,默认的日志名为spring.log
logging.path=output/logs
如果不想要把日志放在logging.path默认的根目录下,那就采用自定义的目录和文件名(和项目同级别目录)
logging.file=/data/logs/springboot.log
五、配置日志的内容格式
#%d-时间格式、%thread-线程、%-5level-从左5字符宽度、%logger{50}-日志50个字符、%msg-信息、%n-换行
#设置在控制台输出的日志格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} -%msg%n
#设置输出到文件的日志格式
logging.pattern.file=%d{yyyy/mm/dd} === [%thread] == %-5level == %logger{50} == %msg%n

浙公网安备 33010602011771号