我正在构建一个用于在Cloudhub上部署的Mulesoft / Anypoint应用程序,并且出于诊断目的,希望能够(在应用程序内)确定它是在Cloudhub上运行还是在我本地开发机器上的Anypoint Studio中运行:
#[message.payloadAs(java.lang.String)]
),但希望在Cloudhub上使用更简洁的日志记录。区分当前运行时的最佳方法是什么?我无法弄清楚任何公开此信息的自动系统属性。
(我意识到我可以设置我自己的属性,如system.env=LOCAL
,并用system.env=CLOUDHUB
覆盖它进行部署,但我很好奇平台是否已经以某种方式提供了这些信息。)
答案 0 :(得分:1)
据我所知,最好的方法是使用属性。只要您保持一致,您使用的具体名称和值无关紧要。这是一个例子:
在本地开发环境中,在mule-app.properties
中设置以下属性:
system.environment=DEV
部署到Cloudhub时,使用部署工具将该属性更改为:
system.environment=CLOUDHUB
然后在您的消息处理器中,您可以引用此属性:
<logger
message="#['${system.environment}' == 'DEV' ? 'verbose log message' : 'concise log message']"
level="ERROR"
doc:name="Exception Logger"
/>