• 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");
  • 相关阅读:
    单线程写的下载器
    java反射详解
    查找替换文本文件内容
    设计模式工厂模式
    java写的多项式乘法
    java中类的生命周期
    java写的回溯法求迷宫问题
    MVC:如何使用站点地图
    WPF: RoutedEvent
    Silverlight 如何:指定和检索自定义初始化参数
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12748338.html
Copyright © 2020-2023  润新知