#log4j2
#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>
В результате создается журнал с именем
logs/rCOI.${env:SERVER_PORT:8090}.log
таким образом, он даже не использует значение по умолчанию. Я уверен, что SERVER_PORT определен и экспортирован, потому что я использую его в приложении без проблем.
Я пробовал $$ {env: SERVER_PORT:8090} и просто $ {SERVER_PORT} также. Ничего не работает.
Было бы неплохо иметь возможность использовать переменную среды и для журналов / каталога.