使用Spring @Profile加载log4j2 xml配置而不是maven <profile>

时间:2016-12-01 18:20:37

标签: java spring maven log4j2

目前我正在使用maven加载我的log4j2配置

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources/env-dev</directory>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>test</id>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources/env-test</directory>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>prd</id>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources/env-prd</directory>
                </resource>
            </resources>
        </build>
    </profile>
</profiles>

enter image description here

但这需要我为每个环境建立新的战争,我想避免。有没有办法让我使用Spring @Profile注释来加载log4j2配置?

1 个答案:

答案 0 :(得分:3)

我没有尝试使用log4j2,但我相信您可以使用属性logging.config提供配置文件位置。

举个例子: -

application-dev.properties文件中放置以下内容。可以使用-Dspring.profiles.active = dev

激活此配置文件

logging.config=/env-test/log4j2.xml

application-prd.properties文件中放置以下内容。可以使用-Dspring.profiles.active = prd

激活此配置文件

logging.config=/env-prd/log4j2.xml

请同时使用src / main / resources目录中的上述配置文件。

注意:如果使用YAML,它更方便,因为它们可以放在一个配置文件中,使用---分隔文档。