zoukankan      html  css  js  c++  java
  • 【spring boot logback】日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么

    本篇 将针对【日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么】这一个主题进行探索。

    这个测试项目是根据【spring boot】8.spring boot的日志框架logback使用中建立的项目进行测试的

    在配置了logback-spring.xml 这个logback自定义的配置文件之后:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <configuration scan="true" scanPeriod="60 seconds" debug="false">
    
        <contextName>logback</contextName>
        <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
        <property name="log.path" value="E:\log\logback.log" />
    
        <!--输出到控制台-->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>INFO</level>
            </filter>
            <encoder>
                <!--<pattern>%d %p (%file:%line)- %m%n</pattern>-->
                <!--格式化输出:%d:表示日期    %thread:表示线程名     %-5level:级别从左显示5个字符宽度  %msg:日志消息    %n:是换行符-->
                <pattern>控制台-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n</pattern>
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
        <!--输出到文件-->
        <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${log.path}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
                <maxHistory>30</maxHistory>
                <totalSizeCap>1GB</totalSizeCap>
            </rollingPolicy>
            <encoder>
                <!--格式化输出:%d:表示日期    %thread:表示线程名     %-5level:级别从左显示5个字符宽度  %msg:日志消息    %n:是换行符-->
                <pattern>文件记录-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
                <charset>GBK</charset>
            </encoder>
        </appender>
    
        <root level="info">
            <appender-ref ref="console" />
            <appender-ref ref="file" />
        </root>
    
        <logger name="com.sxd.controller"/>
        <logger name="com.sxd.util.LogTestController" level="WARN" additivity="false">
            <appender-ref ref="console" />
        </logger>
    
    
    
    </configuration>
    View Code

    后续又对application.properties进行了配置

    然后进行测试:

    【发现,日志级别是按照自定义的logback-spring.xml文件中的配置进行的】

     【发现并未在d盘下生成application.properties中定义的生成日志文件】。

    但是,自定义配置文件规定生成的日志文件中却记录了INFO优先级以下的日志:

    【因为根据配置文件中配置可以看出,file这个appender是通过com.sxd.controller.MainController中的方法访问到的,而<logger name="com.sxd.controller">并未指定任何,所以是向上找到<root>,而<root>的等级是INFO】

    【但是从下面日志文件可以看到DEBUG等级的日志信息都被打印出来了】

     【可以看到,日志文件大小瞬间激增到67M大小】

     

    结论:

    日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置一些硬性的配置,例如生成日志文件等不会被影响,但是如果随意配置的话,会影响到自定义日志配置文件中的配置。

    所以,配置了自定义的日志配置文件logback-spring.xml之后,就不用在application.properties进行配置了,不然多此一举,产生不必要的影响。

  • 相关阅读:
    自定义 mapper
    solr 服务搭建
    jedis 连接redis
    jedis 整合 Spring
    Redis 安装
    HttpClient 工具类
    springMvc 中返回字符串 乱码解决
    linux常用命令解析
    压缩jar包
    控制反转
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/7885365.html
Copyright © 2011-2022 走看看