Tomcat WAR -Настройте Logback для использования имени приложения в пути

У меня есть logback, развернутый в моей папке lib файла войны, и у меня есть следующий logback.xml в папке классов.

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
  <property name="destination" value="${catalina.base:-./temp}/logs/${appName:-myapp}" />

  <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${destination}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- rollover daily -->
      <fileNamePattern>${destination}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <!-- Keep logs for 7 days -->
      <maxHistory>7</maxHistory>

      <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <!-- or whenever the file size reaches 100MB -->
        <maxFileSize>100MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="error">
    <appender-ref ref="ROLLING" />
  </root>
</configuration>

В строке 3 у меня есть некоторые замены переменных, которые создают путь к моему файлу журнала.

  <property name="destination" value="${catalina.base:-./temp}/logs/${appName:-myapp}" />

Я хочу сделать так, чтобы ${appName}оценивалось как текущее имя развернутого файла войны.

Итак, если моя папка веб-приложений выглядит так

webapps
 - myapp.war
 - myapp-dev.war

${destination}свойство для myapp.war оценивается как .../logs/myapp, а myapp -dev.war оценивается как .../logs/myapp-dev. Есть ли свойство JNDI или что-то, к чему я могу получить доступ для доступа к appName?

Я хотел бы избежать

Спасибо!

16
задан HaxElit 5 May 2012 в 19:34
поделиться