Как динамически установить путь к файлу журнала в log4j2.xml - PullRequest
0 голосов
/ 12 марта 2019

Я сделал запись с использованием log4j2 в Spring-Boot. Я хочу установить путь к файлу журнала динамически из файла свойств. Я написал код ниже для этого, но он не работает нормально.

мой файл свойств abc.properties следующий код

log4j2FilePath = logs/log4j2-demo.log

и мой файл журнала log4j2.xml код следующий

 <Property name="log-path">config.properties.log4j2FilePath</Property>

        <RollingFile name="FileAppender" fileName="${log-path}"
                     filePattern="logs/log4j2-demo-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout>
                <Pattern>${LOG_PATTERN}</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="10MB" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>

Ответы [ 3 ]

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

abc.properties

log4j2FilePath = logs / log4j2-demo.log

<Properties>
    <Property name="log-path">${bundle:abc:log4j2FilePath}</Property>
</Properties>
0 голосов
/ 12 марта 2019

По умолчанию spring-boot ищет logback.xml (или logback-spring.xml) в папке ресурсов вашего проекта. Если вы хотите использовать динамически генерируемые настройки, вы можете переопределить свойство в свой application.properties файл logging.config=/some/path/logging-settings.xml

Все logging.* свойства являются частью LoggingApplicationListener

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

По умолчанию log4j2 ищет объявленные динамические свойства в log4j2.properties файле.
Если вы хотите использовать какой-либо другой файл свойств, скажем, abc.properties, я бы предложил использовать прокси-переменные.

Под этим подразумевается, что вы можете создать переменную в log4j2.properties , которая фактически получает значение из abc.properties .

Таким образом, вы можете получить доступ к varaibale в log4j2.properties , например,

property.fileName=${bundle:abc:log.path}
...