在项目的开发中,日志是必不可少的一个记录事件的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架。
而市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我们该如何选择呢?
通常情况下,日志是由一个抽象层+实现层的组合来搭建的。
日志-抽象层 | 日志-实现层 |
JCL、SLF4J、jboss-logging | jul、log4j、log4j2、logback |
而SpringBoot机智的选择了SLF4J+Logback的组合,这个组合是当下比较合适的一组(log4j2其实很厉害,但是太厉害导致我驾驭不了~)
SLF4J使用
当我们在使用SpringBoot时,同样可能还会调用其他的框架,比如:Spring+Mybatis等等,这些框架中都有自己底层的日志框架在使用,所以,我们需要在引用的同时,将他们的日志框架排除掉即可,如下:
(截取模糊,凑合看先~)
1. 按照默认的配置,我们来写个测试类看一下:
可以看到,日志只输出了info、warn、error。也就是说SpringBoot默认是设置info级别。
那么,按照我们的需要,要如何修改这个日志输出级别呢?如下,按照你需要的可以配置,输出在控制台的日志的输出级别,一般情况下只需要默认即可。
logging.level.com.atguigu=trace
2.配置日志生成的路径及日志名称
在项目的运行中,我们不可能一直看着控制台,而且日质量会很大,转瞬即逝的~
那么,我们需要指定我们需要的日志名称以及日志生成的路径,用到两个配置,都是在application.properties/yml中写,如下:(都不设置的话,不生成日志)
# 按照默认的名称spring.log,生成到指定路径及日志。logging.path=output/logs # 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称logging.file=D:/ooodin.log
3.日志的格式配置
首先来看默认输出的格式:
# %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
输出:
4.配置自定义log信息
如果想用自己的log配置,不用系统默认的,那么只需要按照官方要求,将该配置文件放在所需类的目录下即可,也可以在resource中配置全局的。
然而官方推荐我们在这些命名中,使用带有spring的扩展名,它会被SpringBoot框架识别(不写的单会被日志框架识别),并且可以使用其相应的功能,比如根据环境来使用某段配置:
这是官方的图~
更多日志的配置及应用,后边我们再议~
原文地址:https://www.cnblogs.com/iceb/p/9209796.html