Я пытаюсь установить свойство в файле конфигурации logback на основе значения системного свойства.
Мой logback. xml имеет следующее:
<configuration>
<property name="env" value="${env}" />
<if condition='property("env").equals("prod")'>
<then>
<property name="myProperty" value="PRODUCTION"/>
</then>
<else>
<property name="myProperty" value="DEVELOPMENT"/>
</else>
</if>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern> env=${myProperty} msg=%msg%n</pattern>
</encoder>
</appender>
<root level="ALL">
<appender-ref ref="STDOUT" />
</root>
</configuration>
I запустить мой java код с системным свойством и без него -Denv=prod
Java код:
System.out.println("System property env=" + System.getProperty("env"));
log.info("This is a test.");
Выводы:
System property env=prod
env=myProperty_IS_UNDEFINED msg=This is a test.
Может кто-нибудь объяснить, почему Я получаю myProperty_IS_UNDEFINED
?