未提供运行时参数时的Logback默认值

问题描述 投票:1回答:1

我在我的logback.xml中有这个conf:

<logger name="L1" additivity="false">
    <appender-ref ref="${SELECTED_CONSOLE}" />
</logger>

<root level="${LOG_LEVEL}">
    <appender-ref ref="${SELECTED_CONSOLE}" />
</root>

我的问题是,在某些情况下,如果尚未定义LOG_LEVEL var,那么L1的日志级别是多少?

logging logback
1个回答
0
投票

如果LOG_LEVEL参数未定义,则Logback会将其视为此字符串:

LOG_LEVEL_IS_UNDEFINED

然后Logback将该值转换为ch.qos.logback.classic.Level.DEBUG(参见ch.qos.logback.classic.Level.toLevel()的实现)

因此,您的根记录器级别将为DEBUG,并且由于L1记录器未声明级别,因此它将继承该级别。因此,如果未定义LOG_LEVEL,那么L1的日志级别将为:DEBUG

L1的可加性是假的这一事实并没有改变这一点;可加性阻止L1记录器的父级使用其appender显示消息,它不会影响推断的日志级别。

© www.soinside.com 2019 - 2024. All rights reserved.