Доступ к переменной среды из log4j2. xml - PullRequest
1 голос
/ 06 февраля 2020

Я занимаюсь разработкой веб-приложения Spring Boot. Я пытаюсь получить доступ к переменной среды с сервера Websphere в моей конфигурации log4j2. xml. Но почему-то это не работает.

Переменная среды установлена ​​в WAS по следующему пути -

Серверы приложений> server001> Определение процесса> Java Виртуальная машина> Пользовательские свойства

переменная окружения image

Мой log4j2. xml конфигурация следующая -

<Appenders>
 
        <RollingFile name="RollingFile"
            fileName="$${env:environment}/apps/was/logs/app-logs.log"
            filePattern="$${env:environment}/apps/was/logs/$${date:yyyy-MM}/app-logs-%d{-dd-MMMM-yyyy}-%i.log.gz">
            <PatternLayout>
                <pattern>%d %p %C{1.} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy
                    size="10 MB" />
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>
</Appenders>

Я попытался получить переменную среды, используя $$ {env: environment} / $ {env: environment} / $ {environment}. Ничто не работает, работает. Он не может получить переменную среды. Поэтому он создает папку с именем «$ {env: environment}» / $ {environment} вместо «DVL».

С java Я могу получить доступ к своей переменной окружения без каких-либо проблем -

System.getProperty ("environment") ==> DVL

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

У нас возникла та же проблема, и мы внедрили обходной путь.

Мы читаем значение среды с помощью java и сохраняем в MD C (Используя slf4j MD C)

И ключ MD C доступен в log4j2.xml

Пример:

MDC.put("environment", System.getProperty("environment"));

Теперь вы можете получить доступ к environemnt, просто написав {environment}

Надеюсь, это поможет вам.

1 голос
/ 06 февраля 2020

Я решил эту проблему, используя ${sys:environment} вместо ${env:environment}. Для более подробной информации go в документации logging. apache .org / log4j / 2.x / manual / lookups. html

...