log4j2环境变量替换不适用于文件名属性

时间:2019-04-24 02:07:27

标签: log4j2

我正在尝试使用包含服务器端口号的文件名配置我的每日滚动日志文件,因为这是一个多服务器应用程序,每个服务器都会生成自己的日志。

我有以下配置

<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                    pattern="[%d{ISO8601}:$${env:SERVER_PORT}-L1] [th:%t] [%c] [%level] [%logger{36}] - %n[%d{ISO8601}:$${env:SERVER_PORT}-L2]%msg%n"/>
        </Console>
        <RollingFile name="dailyLog" immediateFlush="false" append="true">
            <FileName>logs/rCOI.${env:SERVER_PORT:8090}.log</FileName>
            <FilePattern>logs/rCOI.${env:SERVER_PORT:8090}.%d{yyyy-MM-dd}.log.zip</FilePattern>
            <PatternLayout
                    pattern="[%d{ISO8601}:$${env:SERVER_PORT}-L1] [th:%t] [%c] [%level] [%logger{36}] - %n[%d{ISO8601}:$${env:SERVER_PORT}-L2]%msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
            <DefaultRolloverStrategy max="5" />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="dailyLog"/>
        </Root>
    </Loggers>
</Configuration>

这将产生一个名为 日志/rCOI.${env:SERVER_PORT:8090}.log 因此它甚至没有使用默认值。我确定已定义并导出了SERVER_PORT,因为我在应用程序中使用它时没有任何问题。

我尝试了$$ {env:SERVER_PORT:8090},也尝试过$ {SERVER_PORT}。什么都没用。

也可以在logs /目录中使用环境变量。

0 个答案:

没有答案