如何配置gradle在不同的环境下使用不同的log4j.properties文件?

How to configure gradle to use different log4j.properties files in different environments?

我有 3 个本地配置文件、dev、prod 配置文件和 3 个不同的 log4j.properties 文件。如何配置 gradle 以使用不同的属性文件?我需要类似这样的东西 How to configure maven to use different log4j.properties files in different environments

我建议您阅读有关 Logging within the Spring boot reference. You really shouldn't be building an application that is environment specific. You should be using the same artifact and specifying environment variables to specify unique characteristics for that environment (The Twelve-Factor App - Build, Release, Run 的部分。在这种情况下,您将创建一个应用程序,然后在您使用 local、dev 或 prod 的情况下,您可以为指向不同 log4j.properties 文件的 logging.config 指定一个环境变量,类似于您指定 spring.profiles.active 属性.

Logback 的参考资料中甚至有一个特殊部分,用于根据配置文件进行不同的日志记录。我知道您最初的问题是 log4j.properties 但也许这需要看一下 logback。在 Profile-Specific Configuration 部分下,它显示您可以使用不同配置文件的部分自定义 logging.config 文件。示例:

<springProfile name="staging">
    <!-- configuration to be enabled when the "staging" profile is active -->
</springProfile>

<springProfile name="dev, staging">
    <!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile>

<springProfile name="!production">
    <!-- configuration to be enabled when the "production" profile is not active -->
</springProfile>