[logback-user] Error when <Property> name and value attributes are present, but value attribute is empty ("")

Shane Kelly logback at ballinascreen.com
Sat Dec 15 19:37:52 CET 2012


Folks,

I define a number of locally scoped properties in my logback configuration
which are reused throughout the remainder of the file. For example:

<property name="LOG_DATE_FORMAT" value="'yyyy-MM-dd HH:mm:ss,SSS Z'" />
<property name="LOG_TIMEZONE" value="" />
<property name="LOG_BASEDIR" value="${catalina.base}/logs/myappname" />

...
...
...

  <appender name="MyAppName-RFA"
class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_BASEDIR}/myappname.log</file>

    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>DEBUG</level>
    </filter>

    <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- Monthly Rollover, 24 Month Retention -->

<fileNamePattern>${LOG_BASEDIR}/archive/%d{yyyy,aux}/myappname.%d{MM}.log.gz</fileNamePattern>
      <maxHistory>24</maxHistory>
    </rollingPolicy>

    <encoder>
      <pattern>%d{${LOG_DATE_FORMAT},${LOG_TIMEZONE}} %-6p
[%X{MyAppName-UUID}] %c:%M - %m%n</pattern>
      <outputPatternAsHeader>false</outputPatternAsHeader>
    </encoder>
  </appender>

I have multiple rolling file appenders, so rather than define the values
manually for each appender, I define the local property and reuse as
appropriate.

However, by default the LOG_TIMEZONE value is empty - I only want this
value to be populated when a specific timezone is required. However, as a
result of defining this property but specifying no value I get the
following error message at startup:

18:30:41,402 |-ERROR in ch.qos.logback.core.joran.action.PropertyAction -
In <property> element, either the "file" attribute alone, or the "resource"
element alone, or both the "name" and "value" attributes must be set.

I assume from this error message that a property cannot have a NULL/empty
value - i.e. this is expected behaviour? I guess I could remove/comment the
property if it is not being used in the current configuration - although
I'd rather not remove it from the configuration file completely, since its
presence also acts as a visual reminder of which properties can be set.

Regards,

Shane
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20121215/b752ff48/attachment.html>


More information about the Logback-user mailing list