SpringBoot日志管理(三)

3.SpringBoot日志(日志框架,日志配置)

1. 日志框架


左边选择一个门面,(抽象层). 右边选择一个实现 .

日志门面:我们选择左边SLF4j,因为JCL太老了, jboss-logging不适合

日志实现:Logback最新的和SLF4j和SLF4j适配, log4j2适配不好

springboot:底层使用的spring框架,spring框架默认使用jcl

所以springboot使用slf4j和logback!

SLF4j的使用

1.如何在系统中使用SLF4j

以后在开发的时候,日志记录方法的调用,不应该嗲用日志的实现类, 而是调用抽象方法

给系统导入slf4j的jar和logback的实现jar

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

图示:slf4j用法

每一个日志实现框架,都有自己的配置文件. 配置文件使用slf4j以后,配置文件还是做成日志实现框架的配置文件;

2.遗留问题

统一日志记录,(Spring(commons-logging),Hibernate(joss-logging))

  1. 现将系统中其他日志框架先排除出去;

  2. 用中间包来替换原有的日志框架;

  3. 我们导入slf4j其他的实现

3.使用日志


Logger logger = LoggerFactory.getLogger(getClass());

    // 日志的级别从低到高,如下排列
    @Test
    public void testLog() {
        logger.trace("这个trace日志");
        logger.debug("这个debug日志");
        logger.info("这个info日志");
        logger.warn("这个warn日志");
        logger.error("这个error日志");

    }

可以在配置文件里配置级别:(如下图,这样我们的输出级别就是debug级别了)


logging.level=debug
#指定目录,与logging.file冲突
#当前磁盘的根路径下创建spring文件夹和里面的log文件夹,使用日志spring.log默认文件
logging.path=/spring/log
#不指定路径,就在当前项目下生产springboot.log日志
#可以指定完整的路径:
logging.file=springboot.log
# 在控制台输出的日志的格式
logging.pattern.console=

指定配置

给类路径下 ,根据规定放一下的配置文件

Logging System Customization
Logback logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

推荐使用带扩展名的logback-spring.xml, 因为日志框架就不会被直接加载了,这样它由spirngboot加载能用到,springProfile标签,


<springProfile name="staging">
    <!-- configuration to be enabled when the "staging" profile is active -->
    可以指定环境下,生效
</springProfile>

<springProfile name="dev, staging">
    <!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile>

<springProfile name="!production">
    <!-- configuration to be enabled when the "production" profile is not active -->
</springProfile>

猜你喜欢

转载自blog.csdn.net/weixin_38399962/article/details/80454666