SpringBoot 中的日志使用

springboot框架在企业中的使用越来越普遍,springboot日志也是开发中常用的日志系统。springboot默认就是使用SLF4J作为日志门面,logback作为日志实现来记录日志。
SpringBoot中的日志设计:

<!-- 不需要手动引入,springboot框架自带引入 -->
<dependency>
    <artifactId>spring-boot-starter-logging</artifactId>
    <groupId>org.springframework.boot</groupId>
</dependency>

  

  总结:
    1. springboot 底层默认使用logback作为日志实现。
    2. 使用了SLF4J作为日志门面
    3. 将JUL也转换成slf4j
    4. 也可以使用log4j2作为日志门面,但是最终也是通过slf4j调用logback

 SpringBoot日志使用:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class LoggerTest {

    private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);

    @Test
    public void contextLoads() {
        //打印日志信息
        LOGGER.error("error");
        LOGGER.warn("warn");
        LOGGER.info("info"); // 默认日志级别
        LOGGER.debug("debug");
        LOGGER.trace("trace");
    }
}

修改默认日志配置:application.properties

# 指定自定义 logger 对象日志级别
logging.level.pers.fgy=trace

# 在控制台输出的日志的格式 同logback
logging.pattern.console=[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c [%thread]===== %msg %n

# 指定存放日志文件的具体路径 此配置方式已过期
#logging.file=d:/logs/springboot.log
# 指定日志文件存放的目录,默认的文件名 spring.log
logging.file.path=d:/logs/springboot/
# 指定日志文件消息格式 logging.pattern.file=[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c [%thread]===== %msg %n

指定配置:

  给类路径下放上每个日志框架自己的配置文件,SpringBoot就不使用默认配置了

    

  当使用SpringBoot解析日志配置时,可以在配置文件中定义不同的日志输出格式,这样在开发环境和线上环境就可以自由切换日志输出格式,而不用修改配置文件

    <!--控制台日志输出的目的地appender-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--控制输出流对象 默认 System.out(黑色字体) 改为 System.err(红色字体)-->
        <target>System.err</target>
        <!--日志消息格式配置-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <springProfile name="dev">
                <pattern>${pattern}</pattern>
            </springProfile>
            <springProfile name="pro">
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] ==== %m%n</pattern>
            </springProfile>
        </encoder>
    </appender>

    通过 application.properties 配置文件切换日志输出格式:spring.profiles.active=dev

将日志切换为log4j2:

  1.修改pom文件

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!--排除logback-->
    <exclusions>
        <exclusion>
            <artifactId>spring-boot-starter-logging</artifactId>
            <groupId>org.springframework.boot</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 添加log4j2 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

  2.引入 log4j2 的配置文件即可,代码不需要改变,因为使用的是 slf4j 日志门面

lombok插件中的 @Slf4j :

  在类上使用此注解可以省略一行代码:private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);

  直接使用 log 变量,不需要声明

        //打印日志信息
        log.error("error");
        log.warn("warn");
        log.info("info"); // 默认日志级别
        log.debug("debug");
        log.trace("trace");

 

posted @ 2020-04-21 22:14  糖不甜,盐不咸  阅读(366)  评论(0编辑  收藏  举报