2017-03-17 123 views
1

我正在構建用於在Cloudhub上部署的Mulesoft/Anypoint應用程序,並且出於診斷目的,希望能夠(從應用程序內)確定它是在Cloudhub上運行還是在我的本地開發機器上的Anypoint Studio:確定我是在Cloudhub上運行還是在本地運行

  • 在Cloudhub上,我想使用Cloudhub連接器爲特殊情況創建通知 - 但在本地使用該連接器會導致異常。
  • 在我的本地機器上,我希望使用非常詳細的日誌來完全轉儲有效負載(#[message.payloadAs(java.lang.String)]),但希望在Cloudhub上使用更簡潔的日誌記錄。

區分當前運行時的最佳方式是什麼?我找不出任何公開此信息的自動系統屬性。

(我意識到,我可以把我自己的財產稱爲像system.env=LOCALsystem.env=CLOUDHUB部署覆蓋它,但我很好奇,如果該平臺已經提供了以某種方式這一信息。)

回答

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" 
/> 
相關問題