SpringBoot——日志框架篇

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

而市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我们该如何选择呢?

通常情况下,日志是由一个抽象层+实现层的组合来搭建的。

日志-抽象层 日志-实现层
JCL、SLF4J、jboss-logging jul、log4j、log4j2、logback

而SpringBoot机智的选择了SLF4J+Logback的组合,这个组合是当下比较合适的一组

一、SLF4J使用
当我们在使用SpringBoot时,同样可能还会调用其他的框架,比如:Spring+Mybatis等等,这些框架中都有自己底层的日志框架在使用,所以,我们需要在引用的同时,将他们的日志框架排除掉即可,如下:


            org.springframework
            spring-core
            
                
                    commons-logging
                    commons-logging
                
            
 

二、使用日志框架的demo

@Controller
@RequestMapping("/test)
public class TestController {
    
	private static Logger log = LoggerFactory.getLogger(Logger.class);


    @ResponseBody
    @RequestMapping("/test")
    public String test(){
        log.trace("测试trace");
        log.debug("测试debug");
        log.info("测试info");
        log.warn("测试warn");
        log.error("测试error");
        return "hello test";
    }

}

可以看到,日志只输出了info、warn、error。也就是说SpringBoot默认是设置info级别。
SpringBoot——日志框架篇_第1张图片
那么,按照我们的需要,要如何修改这个日志输出级别呢?如下,按照你需要的可以配置,输出在控制台的日志的输出级别,一般情况下只需要默认即可。

 #logging.level设置日志级别,后面跟生效的区域,比如root表示整个项目,也可以设置为某个包下,也可以具体到某个类名
logging.level.root=info

三、配置日志生成的路径及日志名称
在项目的运行中,我们不可能一直看着控制台,而且日质量会很大,转瞬即逝的~
SpringBoot——日志框架篇_第2张图片
那么,我们需要指定我们需要的日志名称以及日志生成的路径,用到两个配置,都是在application.properties/yml中写,如下:(都不设置的话,不生成日志)

#两个值需要设置一个就行了,开发环境一般使用上面这个,生成环境,使用下面这个
# 按照默认的名称spring.log,生成到指定路径及日志。
logging.path=./logs
# 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称
logging.file=D:/logs/project-server.log

四、日志的格式配置
在这里插入图片描述

#控制台文件输出格式
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

五、配置自定义log信息
如果想用自己的log配置,不用系统默认的,那么只需要按照官方要求,将该配置文件放在所需类的目录下即可,也可以在resource中配置全局的。
SpringBoot——日志框架篇_第3张图片
然而官方推荐我们在这些命名中,使用带有spring的扩展名,它会被SpringBoot框架识别(不写的单会被日志框架识别),并且可以使用其相应的功能,比如根据环境来使用某段配置:

这是官方的图~

你可能感兴趣的:(springboot)