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

时间:2019-04-08 15:48:23

标签: logging logback

我的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的日志级别将是什么?

1 个答案:

答案 0 :(得分:0)

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

LOG_LEVEL_IS_UNDEFINED

然后登录将把该值转换为ch.qos.logback.classic.Level.DEBUG(请参阅ch.qos.logback.classic.Level.toLevel()的实现)

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

L1的可加性为假的事实并不能改变这一点;可加性可防止L1记录器的父母使用其附加程序显示消息,这不会影响推断的日志级别。