我希望有一个单一的 WAR 文件,它可以在不同的环境(如 dev、ci 和 prod)中工作,而 spring 环境在很大程度上迎合了我们的用例。每个环境的 log4j 是突出的项目之一。正如其他答案中所建议的那样,我们可以为每个环境配置一个 log4j - 但是每个环境的文件中有很多重复,唯一不同的是次要属性,如 SMTPAppender 的 toAddress 等。是有一种简单的方法可以使用类似模板的 log4j 配置文件并在运行时替换每个环境的不同部分?Maven 在这里不起作用,因为它会导致编译时选择。
我能想到的一种解决方案是扩展 Log4jConfigurer 以读取一些环境变量,即。模板键值对的映射,并将模板文件中的模板变量替换为实际值,然后再将其传递给 DOMConfigurator。只是想检查是否有更简单的方法可以做到这一点,或者从最佳实践的角度来看我是否在吠叫错误的树。
提前致谢!