log4j2 filePattern 不插值

log4j2 filePattern doesn't interpolate

我尝试添加以下 RollingFile appender;

    <RollingFile name="appFile" fileName="${sys:catalina.base}${sys:file.separator}logs${sys:file.separator}${web:contextPath}${sys:file.separator}app.log" filePattern="app-%d{dd-MM-yyyy}.log">
        <PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss} %c{2} - %m%n" />
        <Policies>
            <TimeBasedTriggeringPolicy />
            <SizeBasedTriggeringPolicy size="250 MB" />
        </Policies>
        <DefaultRolloverStrategy max="20" />
    </RollingFile>

文件在正确的路径中创建,但名称始终相同 (app.log) 而不是 app-xx-xx-xxxx.log.

我错过了什么?

filePattern 属性是文件名的 模式 ,用于 rollover。但是如果你想要主动写入的文件名中的日期模式,你可以在 filename 属性中使用 Date Lookup,即:

fileName="${sys:catalina.base}${sys:file.separator}logs${sys:file.separator}${web:contextPath}${sys:file.separator}app-${date:dd-MM-yyyy}.log"