我在我的战争文件 lib 文件夹中部署了 logback,并且在 classes 文件夹中有以下 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}
评估为部署的war文件的当前名称。
所以如果我的网络应用程序文件夹看起来像这样
webapps
- myapp.war
- myapp-dev.war
myapp.war的${destination}
属性将评估为.../logs/myapp
并且 myapp-dev.war 将评估为.../logs/myapp-dev
。是否有 JNDI 属性或我可以访问以访问 appName 的东西?
我想避免手动重新配置记录器。
谢谢!