Подстановка переменной среды log4j2 не работает для атрибута имени файла - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь настроить файл ежедневного скользящего журнала с именем файла, содержащим номер порта сервера, потому что это многосерверное приложение, и каждый сервер создает свой собственный журнал.

У меня есть следующая конфигурация

<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 /.

...