logback-spring.xml文件不生效问题

最近开发了一个新项目,用的是IDEA新建的springboot项目。

1.给IDEA安装GREP CONSOLE彩色日志插件

2.在resources包中加入logback-spring.xml文件

执行启动类的main方法,发现控制台的确输出了彩色日志,但是在application.properties指定的是开发环境:

spring.profiles.active=dev

并且在logback-spring.xml里面是这样设置的:

<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
<property name="log.path" value="D:/guli_log/edu" />

<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
     <!-- 正在记录的日志文件的路径及文件名 -->
     <file>${log.path}/log_info.log</file>
     ...
</appender>
<!-- 时间滚动输出 level为 WARN日志 -->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
     <!-- 正在记录的日志文件的路径及文件名 -->
     <file>${log.path}/log_warn.log</file>
     ...
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
     <!-- 正在记录的日志文件的路径及文件名 -->
     <file>${log.path}/log_error.log</file>
     ...
</appender>

<!--开发环境:打印控制台-->
<springProfile name="dev">
    <!--可以输出项目中的debug日志,包括mybatis的sql日志-->
    <logger name="com.guli" level="INFO" />

    <!--
        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,默认是DEBUG
        可以包含零个或多个appender元素。
    -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="WARN_FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>
</springProfile>

在D盘下并没有发现D:/guli_log/edu这个文件路径,也没有发现INFO_FILE,WARN_FILE,ERROR_FILE三个日志输出对应的log_info.log,log_warn.log和log_error.log文件日志文件.

后来经过排查发现是配置文件logback-spring.xml的问题,因为springboot默认先扫描logback.xml,如果发现没有再扫描logback-spring.xml,所以可能在某个

引入的包中包含了logback.xml配置文件导致修改配置文件不生效,把logback-spring.xml修改成logback.xml后,日志成功生效,在D盘下找到了D:/guli_log/edu

的路径,并且生成了og_info.log,log_warn.log和log_error.log三个日志文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章