不同包的不同日志记录级别 LogBack

Different logging levels for different packages LogBack

我正在使用 LogBack 进行日志记录,目前我的设置是这样的

<configuration>
    <property resource="application.properties"/>
    <timestamp key="byDay" datePattern="yyyyMMdd"/>
    <if condition='property("spring.profiles.active").contains("prod")'>
        <then>
            <appender name="FILE" class="ch.qos.logback.core.FileAppender">
                <file>${logging.path}/myFileExt-${byDay}.log</file>
                <append>true</append>
                <encoder>
                    <pattern>%d{HH:mm:ss.SSS - yyyy.MM.dd} - [%thread] %-5level %C - %msg%n</pattern>
                </encoder>
            </appender>
            <logger name="com.mywebsite.myapp.services" level="INFO">
                <appender-ref ref="FILE"/>
            </logger>
            <logger name="com.mywebsite.myapp.utils" level="ERROR">
                <appender-ref ref="FILE"/>
            </logger>
            <root>
                <appender-ref ref="FILE"/>
            </root>
        </then>
        <else>
            <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
                <encoder>
                    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} at line:%L - %msg%n</pattern>
                </encoder>
            </appender>
            <root level="debug">
                <appender-ref ref="STDOUT"/>
            </root>
        </else>
    </if>

</configuration>

我想要它,以便服务包在 INFO 或更高级别记录,而 utils 包在 ERROR 或更高级别记录。但我得到的只是这两个包的错误日志。一定有我遗漏的东西。

我已阅读此文档https://logback.qos.ch/manual/configuration.html 但它没有按预期工作。

我在获取记录器时使用了错误的class。

Logger logger = LogManager.getLogger(classInUtils.class)

应该是

Logger logger = LogManager.getLogger(classInServices.class)