我知道AOP和Postsharp,但這裏的約束是我無法使用postsharp,並且使用屬性進行日誌記錄會產生性能開銷。如何在不污染方法的情況下記錄日誌?
但是現在我必須把日誌代碼放在每個方法中,大量的複製粘貼也不是方法的一部分。所以,我的職能做了不止一項工作。將業務邏輯和日誌集合在一起看起來有點不太合適。
反正有,就像做類開放式的,可以從類或函數的外面添加日誌。或者我只需要採用傳統的伐木方式。
請讓我知道是否有任何進一步的信息需要。任何有關好的/另一種採伐方式的建議也是受歡迎的。
我知道AOP和Postsharp,但這裏的約束是我無法使用postsharp,並且使用屬性進行日誌記錄會產生性能開銷。如何在不污染方法的情況下記錄日誌?
但是現在我必須把日誌代碼放在每個方法中,大量的複製粘貼也不是方法的一部分。所以,我的職能做了不止一項工作。將業務邏輯和日誌集合在一起看起來有點不太合適。
反正有,就像做類開放式的,可以從類或函數的外面添加日誌。或者我只需要採用傳統的伐木方式。
請讓我知道是否有任何進一步的信息需要。任何有關好的/另一種採伐方式的建議也是受歡迎的。
Enterprise Library and Unity。你可以使用合成來創建日誌裝飾器,這些日誌裝飾器圍繞着其他類來記錄,然後傳遞給其他類。
嗨,彼得裏奇告訴,http://msdn.microsoft.com/en-us/magazine/gg490353.aspx是很好的解決方案。您可以看看http://www.microsoft.com/en-us/download/details.aspx?id=17866或其他DI框架,比如Ninject,這對於MVC項目來說是很好的選擇。 任何方式,這是關於DI性能http://www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparison好關鍵。
您可以爲您創造類的裝飾,看看http://en.wikipedia.org/wiki/Decorator_pattern
企業庫和統一。你可以使用組合來創建日誌裝飾器,這些日誌裝飾器圍繞着其他類來記錄,然後傳遞給其他類。 – 2013-03-24 05:29:31
退房http://msdn.microsoft.com/en-us/magazine/gg490353.aspx – 2013-03-24 05:32:17
我認爲這將解決問題。我會試一試。你能否給我答案,如果問題解決了,我可以通過選擇正確答案來結束答案。 – kunjee 2013-03-24 05:39:15