我有一个mule应用程序,它需要从不同的位置加载log4j2.xml,如下所示。
应用程序1
dev --> /etc/dev/app1/log4j2.xml
sit --> /etc/sit/app1/log4j2.xml
. . .
prod --> /etc/prod/app1/log4j2.xml
我不想使用springbean加载,因为在加载这个bean时,Mule已经使用默认配置为app 1启动了日志上下文,并向它写入了很少的日志。
在log4j功能中,有log4j2.system.properties和log4j2.component.properties文件。如果将其中任何一个文件添加到包含log4j.configurationFile属性的类路径(src/main/resources)中,则应该在应用程序启动期间拾取此文件。
参考:Log4j系统属性
log4j.configurationFile=${config.path}/app1/log4j2.xml
config.path在 Package 器中定义为系统属性,可用于保存env路径的app 1(如果是dev,则为“/etc/dev”;如果是sit,则为“/etc/sit”等)
但是,Mule不会拾取这两个文件并解析为默认配置。
有人能帮助Mule在应用程序启动时拾取这些文件吗?
1条答案
按热度按时间jw5wzhpr1#
经过长时间的研究,我们必须使用“logConfig”键更新mule_artifact. json,以定义外部log4j2.xml文件在服务器中相对于mule_home路径的位置。
相同的路径在本地可能不起作用,但您可以创建“mklink”以类似于本地的服务器路径。
我都测试成功了。