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