我正在開發一個控制檯應用程序使用洋蔥架構和域驅動設計。我有兩個域,我需要實現日誌記錄,我弄糊塗我可以放置日誌記錄組件的位置。我可以將它放在兩個域的相應基礎架構中嗎?或者在共享內核中可以在兩個域中引用?如果我需要將它放在共享內核中,我應該遵循的結構是什麼?我的意思是像核心,基礎設施。日誌應該在洋蔥建築與DDD
回答
伐木是一個橫切關注。面向方面的編程旨在將橫切關注點封裝到各個方面。這可以清晰地隔離和重用代碼,以解決橫切關注問題。
您需要創建一個庫並實現您的日誌記錄類,如「MyProject.CrossCutting.Logging」,並使用面向方面的方法使用此庫記錄事件。
如果您遵循DDD和洋蔥架構,這不要緊,你有多少領域有。如果需要,每個域可以實現他們自己的記錄器版本。更可能的是,您將創建一個記錄界面,並可能創建一個靜態實現,並保存在公共層中,任何需要它的層都可以調用該實現。在之前共享的圖像中,它將保留在橫切圖層中。如前所述,記錄是所有層的關注點。
根據前面的建議,我們所做的是,我們在共享內核中爲核心和具體實現創建了一個接口,我們正在使用核心服務的主程序將這個具體實現注入到核心。我正朝着正確的方向走嗎? –
@MaheshkumarCh日誌記錄不是一個域的問題。它不應該在任何領域模型中,無論是共享內核還是獨立領域。 – guillaume31
然後記錄應該去哪裏?我正在使用洋蔥建築。我正在使用登錄服務來記錄所有操作。 –
日誌記錄跨所有應用程序。這應該是你的框架的一部分。所有應用程序項目的所有層都可以依賴於您的框架,就像依賴於.Net Framework,Spring等一樣。如果您的框架必須抽象出可以輕鬆依賴的橫切關注點,然後只需在基礎結構中的應用程序的組合根中引用該實現。
- 1. 洋蔥建築
- 2. 洋蔥建築問題?
- 3. 這裏LocalizationService類應該在DDD與洋蔥架構
- 4. 在洋蔥建築中的參考應該看起來像
- 5. 放在哪裏的ConnectionStrings洋蔥建築
- 6. 洋蔥建築外部服務
- 7. 如何在洋蔥建築上實現服務和存儲庫?
- 8. 洋蔥建築:工廠實施的地方在哪裏?
- 9. 與洋蔥架構DDD有界上下文
- 10. 洋蔥建築是否包含SOLID原則?
- 11. 洋蔥體系結構日誌記錄NHibernate
- 12. 洋蔥URL不與Apache隱匿服務
- 13. 洋蔥建築 - 可以模型服務引用另一個模型服務?
- 14. 洋蔥現代化架構
- 15. 單元測試洋蔥
- 16. 在洋蔥架構管理NHibernate會話
- 17. 建築城堡項目與建築物時建設日誌去哪裏?
- 18. 在洋蔥式架構中,實體是否應該穿過外層?
- 19. .NET MVC 5和洋蔥體系結構
- 20. 洋蔥架構DI層和MSDeploy
- 21. 洋蔥體系結構是否與Service-Repository-UnitOfWork模式類似?
- 22. 日誌邏輯應該放在DDD解決方案的哪個位置?
- 23. 在使用洋蔥架構時應將共享部件放在哪裏?
- 24. 建築工人應該如何暴露?
- 25. 在洋蔥架構中放置視圖模型/ DTO
- 26. DDD - 從其他環境中懶洋洋地獲取信息
- 27. 如何更改serenity -ddd日誌設置
- 28. 應該重寫實體(在DDD中)Object.Equals?
- 29. 建築與螞蟻
- 30. 洋蔥archicecture依賴關係:基礎設施和網絡通信
聽起來不錯,但通常意味着有一個集中式日誌,但如果要爲聚合保存事件 - 它們可能具有相同的結構,但它們應該封裝(只能通過聚合根訪問) ,那麼如果我每個聚合都有事件,比如SalesEvent,CustomerEvent。那麼根據DDD它應該是Aggregate root負責處理這些事件,不是嗎?或者,也許它仍然意味着記錄器處於'infrasture'並且聚合根稱它爲「保存我的事件」,但記錄器如何解決存儲的位置? – Prokurors