Java 如果else条件未设置属性,则返回logback

Java 如果else条件未设置属性,则返回logback,java,logback,Java,Logback,我正在尝试根据系统属性的值在logback配置文件中设置属性 My logback.xml包含以下内容: <configuration> <property name="env" value="${env}" /> <if condition='property("env").equals("prod")'> <then> <property name="myProperty" value="PRODUCTION

我正在尝试根据系统属性的值在logback配置文件中设置属性

My 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>
产出:

System property env=prod
env=myProperty_IS_UNDEFINED msg=This is a test.


有人能解释为什么我得到的
myProperty\u是未定义的吗?

这是因为它是在if/else块中定义的。尝试在if/else块之前再添加一行

<property name="myProperty" value=""/>

如何运行java代码?
<property name="myProperty" value=""/>