У меня есть logback, развернутый в моей папке с файлом war war, и у меня есть следующий файл 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 или что-то доступное для доступа к имени приложения?
Я хотел бы избежать необходимости вручную перенастроить регистратор.
Спасибо!