Tomcat WAR - 将 Logback 配置为在路径中使用应用名称
我已经在我的 war 文件 lib 文件夹中部署了日志,并且我在 classes 文件夹中部署了以下日志.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}
因此,如果我的Web应用程序文件夹看起来像这样
webapps
- myapp.war
- myapp-dev.war
myapp.war 的属性将评估为 ,myapp-dev.war 将评估为 。是否有 JNDI 属性或我可以访问的内容来访问应用程序名称?${destination}
.../logs/myapp
.../logs/myapp-dev
我想避免手动重新配置记录器。
谢谢!