簡體   English   中英

使用C#類庫中的事件實現日志記錄功能-好的做法嗎?

[英]Implement logging functionality using events in C# class library - is it good practice?

我面臨着在我的C#類庫(一個域模型)中記錄實現的挑戰。 我的主要目標是保持日志記錄功能盡可能規范和分離。 通常,日志消息將在調試時寫入文件,甚至可能寫入輸出窗口。

當前,我使用log4net,並且編寫了一個靜態Logger類,該類本身實現了日志記錄方法。 因此,執行域對象中的方法時,它們將調用靜態Logger.Log()方法。

雖然這種包裝足以緩解我的提倡,但我想知道是否可以通過事件實現所有這些日志記錄調用,並從類庫中完全刪除日志記錄實現細節,這是否是一個好主意。 然后,客戶端代碼可以選擇偵聽它們,並從某些LogEventArgs提取有用的信息。

所以問題是:

通常,特別是在類庫中,基於事件的日志記錄是一個好主意嗎? 又為什么呢?

謝謝閱讀。

使用事件進行日志記錄還引入了很多內存泄漏的可能性!

我將使用依賴注入來解決諸如日志記錄之類的交叉問題。

使用DI,您可以注入它,也可以使用攔截。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM