我已经阅读了Mule Logging文档,但不清楚如何为每个环境动态加载不同的日志记录配置文件。基本上我想控制跨环境的日志详细程度和同步/异步功能,以寻找基于服务器环境属性变量动态选择属性文件的类似功能。
答案 0 :(得分:0)
我没有尝试过,但是你应该能够在使用log4j.configuration
系统属性启动Mule时在命令行设置log4j配置文件。
例如(在Windows中),如果您的env变量被调用-Dlog4j.configuration=c:\some-path\log4j-%MULE-ENV%.xml
,则添加MULE-ENV
。
请注意,如果使用独立的-M-Dlog4j.configuration=...
文件,如果使用Mule独立(在这种情况下我认为您需要wrapper.conf
),可以直接在命令行上设置几个地方 - 或在Studio中运行时在“运行配置”中的“参数”选项卡的“VM参数”部分中。
答案 1 :(得分:0)
您的应用程序中可以有一个bean,可以调用该方法来设置配置。您可以将环境名称作为参数传递给此bean,它将选择与该环境关联的配置文件。您可以使用invoke组件调用该方法,并在启动时执行此流程。 直到执行流程,才能使用默认日志记录配置。
答案 2 :(得分:0)
您可以通过 external path
或 application classpath
在应用程序中动态加载log4j2文件的两种方法: -
在应用程序mule-deploy.properties
中设置log4j2文件路径,如: -
log.configFile = E:\共log4j2.xml
通过 Spring 重新配置日志管理器并从您定义的路径加载我们自己的log4j2.xml
文件,以编程方式在应用程序中加载log4j2.xml : -
参考: - https://dzone.com/articles/getting-own-log4j2-file-for-mule-via-spring