Включение ресурса classpath во внешнюю конфигурацию log4j - PullRequest
0 голосов
/ 15 мая 2019

Я использую внешнюю конфигурацию log4j и загружаю ее в прослушиватель контекста сервлета, используя org.apache.logging.log4j.core.config.Configurator

Я хотел бы сослаться на некоторые свойства приложения (например, версию приложения), которыегенерируется во время сборки.Вот что я хотел бы сделать:

/ external-folder / log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns:xi="http://www.w3.org/2001/XInclude" 
    monitorInterval="60">

    <xi:include href="log4j2-properties.xml" />

    <Appenders>
        <Console name="stdout" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %5p %t [${app-version}] %m (%F:%L) %n" />
        </Console>
    </Appenders>
<!-- ... -->
</Configuration>

log4j2-properties.xml

должен быть ресурсом пути к классам, @ version @ фильтруется с помощью gradle.

<?xml version="1.0" encoding="UTF-8"?>
<Properties>
    <Property name="app-version">@version@</Property>
</Properties>

Однако этот подход не работает.Я могу включить только ресурс из той же папки, что и верхний уровень log4j.xml

Как решить мою проблему?

(я знаю, как сделать это с помощью logback, но я бы хотел перейти на log4j2)

...