我有麻煩找上設計和實施生活在Azure雲應用的彈性日誌框架標準做法的信息。這個想法是,應用程序不需要知道或處理自己的日誌記錄和信息\錯誤信息的記錄可以照顧「在後臺」設計Azure的雲的日誌框架
我正在考慮的設計基本上是「隊列 - 基於負載均衡模式「(https://msdn.microsoft.com/en-us/library/dn589783.aspx)通過鏈接自動轉發的服務總線實體進行增強。
的想法是,每個應用程序都有它自己的隊列地方在它的地方丟棄的日誌信息資源組。此本地隊列然後將日誌消息轉發到中央日誌隊列。當日志消息落在中央隊列中時,它觸發一個工作服務(或類似的)來適當地處理消息(格式並將其發送到適當的數據存儲區)
這種方法的思想是如果中央消息隊列日誌消息將保留在應用程序的本地隊列中,從而提供額外的彈性層。如果本地隊列失敗,該應用程序可以作爲備份\冗餘登錄到其他數據存儲。
所以我只是想知道是否有任何缺點或理由上面不會是一個好方法,或者如果任何人都可以推薦一個更好的方法來設計/實施Azure中的共享日誌框架?
嗨佩德羅,感謝您的快速回復。我正在考慮在監視中央隊列的工作進程中使用類似Log4Net或Serilog的東西,以將實際格式化的異常/消息發送到最終的數據存儲區(例如數據庫)。通過這種方式,只有一個服務需要知道日誌記錄的細節,並且會包含所有與日誌相關的代碼(因此所有日誌特定的代碼都將在一個系統中)。所有其他應用程序將只需要擔心發送消息到本地資源隊列。我認爲這是分開顧慮的好方法 – fgenc
確實。我做了類似的事情,我使用IEventAggregator(不再維護)作爲我的內存中的pub/sub。訂閱者只會將日誌消息發佈到隊列中,在我的情況下是Azure存儲隊列 –