Как читать из catalina.properties в log4j2 - PullRequest
0 голосов
/ 01 марта 2019

Моя системная конфигурация: Tomcat 9.0.14 в Windows Java 8 Spring Boot log4j2

В моих catalina.properties у меня определено следующее свойство:

server_log_root=D:/Bharath/Projects/Logs

В моем файле log4j2.xml я пытаюсь получить доступ к вышеуказанному свойству следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="LOG_HOME">${sys:server_log_root}</Property>
        <Property name="CONVERSION_PATTERN">%d{yyyy-MM-dd HH:mm:ss,SSS} tId=%X{TRANSACTION_ID} %-5p %C{1}:%L - %m%n</Property>
    </Properties>
    <Appenders>
        <Console name="CONSOLE_APPENDER" target="SYSTEM_OUT">
            <PatternLayout pattern="${CONVERSION_PATTERN}" />
        </Console>

        <File name="API_SERVICES_FILE_APPENDER" fileName="${LOG_HOME}/api_services_log.log">
            <PatternLayout pattern="${CONVERSION_PATTERN}" />
        </File>
    </Appenders>
    <Loggers>
        <Root>
            <AppenderRef ref="CONSOLE_APPENDER" level="debug"/>
        </Root>

        <Logger name="API_SERVICES_FILE_LOGGER" level="debug" additivity="false">
            <AppenderRef ref="API_SERVICES_FILE_APPENDER" />
        </Logger>
    </Loggers>
</Configuration>

После запуска моего приложения журналыне создается в папке (D: / Bharath / Projects / Logs).

Я попытался изменить стиль пути к папке с / на \, но безуспешно. Кроме того, я попытался использовать следующее, но ничего не помогло:

$${sys:server_log_root}
${env:server_log_root}
$${env:server_log_root}
${server_log_root}
$${server_log_root}

Может кто-нибудь помочь мне?Заранее спасибо!

С уважением, Бхарат

1 Ответ

0 голосов
/ 10 марта 2019

Я решил эту проблему, поместив свойство в качестве переменной среды внутри "context.xml" (вместо catalina.properties)

...