首页 > 解决方案 > 使用 logback-spring.xml 时如何从属性文件中注入 Logback loglevel

问题描述

我正在使用带有 logback-spring.xml 的 Spring Boot。目前将 logback-spring.xml 中的 loglevel 定义为硬编码值。我需要从应用程序属性文件中注入这个值。

需要在属性文件中定义日志级别值 INFO/ERROR 或在 yml 中为不同的环境定义 Spring 配置文件想要以不同方式更改此日志级别。但由于某种原因,我的以下配置不起作用。

我的 logback-srping.xml 如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <springProperty name="myapplog" source="myapplog" />


    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
                %msg%n</pattern>
        </encoder>
    </appender>






    <logger name="org.springframework" level="${myapplog}" additivity="false">
        <appender-ref ref="console" />
    </logger>

    <logger name="com.myapp.package" level="${myapplog}" additivity="false">
        <appender-ref ref="console" />
    </logger>



    <root level="INFO">
        <appender-ref ref="console" />
    </root>

</configuration>

我的 application-dev.properties 将有以下条目

myapplog=信息

但是对于我的 com.myapp.package 包,logback 始终将日志级别默认为 DEBUG。

我使用 Spring Bboot 1.5.2.Release 和 logback 作为日志库。

标签: spring-bootspring-logback

解决方案


推荐阅读