重新登录:测试是否定义了属性

时间:2019-03-13 09:46:29

标签: spring-boot logging logback spring-logback

在Spring Boot / Logback项目中,我想检查系统属性是否设置为使用给定的附加程序。我的代码是:

<property name="MY_PROPERTY" value="${MY_PROPERTY:-}" />
....
<logger name="com.my.project" level="INFO">
    <if condition='property("MY_PROPERTY").equalsIgnoreCase("MY_PROPERTY_IS_UNDEFINED")'>
        <then>
            <appender-ref ref="STDOUT" />
        </then>
        <else>
            <appender-ref ref="APPENDER_WITH_ MY_PROPERTY" />
        </else>
    </if>
</logger>

上面的代码(似乎可以)起作用,但这不是很好。 property()方法将_IS_UNDEFINED附加到变量名,然后使用它...

我找不到关于它的任何可靠文档,有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

该晚了,但是,嘿。

登录手册(http://logback.qos.ch/manual/configuration.html)提到了isDefined方法:

isDefined()方法可用于检查是否定义了属性。例如,要检查是否定义了属性“ k”,可以编写isDefined(“ k”)类似地,如果需要检查属性是否为null,则提供isNull()方法。示例:isNull(“ k”)。