Mule不遵守log4j2.comcomponent.properties或log4j2.system.properti



我有一个mule应用程序,它需要根据下面显示的环境从不同的位置加载log4j2.xml。

app1

dev --> /etc/dev/app1/log4j2.xml    
sit --> /etc/sit/app1/log4j2.xml    
.    .    .    
prod --> /etc/prod/app1/log4j2.xml

我不想使用springbean加载,因为当这个bean加载时,Mule已经用默认配置启动了这个app1的日志上下文,并向其中写入了一些日志

在log4j功能中,有log4j2.system.propertieslog4j2.component.properties文件。当它们中的任何一个被添加到类路径(src/main/resources(中,其中包含log4j.configurationFile属性时,它应该在应用程序启动期间拾取该文件。

参考:Log4j系统属性

log4j.configurationFile=${config.path}/app1/log4j2.xml

config.path在包装器中被定义为系统属性,并且可用于持有env路径的app1("/etc/dev"if-dev或"/etc/sit"if-sit等(

然而,这两个文件都没有被Mule拾取并解析为默认配置。

有人能帮助Mule在应用程序启动过程中拾取这些文件吗?

经过长时间的研究,我们不得不用"logConfig";键定义外部log4j2.xml文件在服务器中相对于mulehome路径的位置。

相同的路径可能在本地不起作用,但您可以创建";mklink";以类似于本地中的服务器路径。

我已经成功地测试了这两个。

相关内容

最新更新