在项目的开发中,日志是必不可少的一个记录事件的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架。

而市面上常见的日志框架有很多,比如: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.配置日志生成的路径及日志名称

在项目的运行中,我们不可能一直看着控制台,而且日质量会很大,转瞬即逝的~

日志架构图 日志框架有哪些_日志框架_02

 

那么,我们需要指定我们需要的日志名称以及日志生成的路径,用到两个配置,都是在application.properties/yml中写,如下:(都不设置的话,不生成日志)



# 按照默认的名称spring.log,生成到指定路径及日志。
logging.path=output/logs
# 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称
logging.file=D:/ooodin.log



 

3.日志的格式配置

首先来看默认输出的格式:

日志架构图 日志框架有哪些_日志框架_03



# %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



 输出:

日志架构图 日志框架有哪些_spring_04

 

4.配置自定义log信息

  如果想用自己的log配置,不用系统默认的,那么只需要按照官方要求,将该配置文件放在所需类的目录下即可,也可以在resource中配置全局的。

日志架构图 日志框架有哪些_java_05

 

  然而官方推荐我们在这些命名中,使用带有spring的扩展名,它会被SpringBoot框架识别(不写的单会被日志框架识别),并且可以使用其相应的功能,比如根据环境来使用某段配置:

  这是官方的图~

日志架构图 日志框架有哪些_spring_06

 

更多日志的配置及应用,后边我们再议~