簡單的問題:看標題。我使用.NET 3.5。在.NET中是否有內置的日誌記錄框架?
詳述: 我正在構建一個插件,它將在運行時加載到第三方應用程序中。主應用程序使用log4net作爲其日誌框架。但是,它不公開根記錄器,所以我們無法登錄。 (我已經向上遊開發者提出了這個問題,他們將在未來發布的版本中修復此問題,因此在此期間我需要提供其他內容)
系統的另一個限制是當它收到通知它應該加載一個本地系統中不存在的插件,它將從它所連接的服務器上拉下該插件(如果它存在於服務器上),但它只能拉下插件所在的程序集。這意味着沒有外部程序集,也沒有.config或任何其他文件可以與插件部署。
這讓我只有內置的.NET程序集和我的插件程序集中的所有東西。但是,我不想通過構建自己的另一個日誌記錄框架來重新發明輪子,所以我想知道這個問題的最佳方法是什麼。
我寧願記錄到文件,也想避免將東西轉儲到Windows事件日誌中。
「它不公開根記錄器」 - 你不能只添加一個對log4net.dll的引用並直接訪問根記錄器嗎? – Joe 2010-01-29 05:59:41
我試着創建我自己的根記錄器,並試圖使用父應用程序'無濟於事。 Log4net只允許每個應用程序使用一個根記錄器,而父應用程序已經創建一個。如果他們暴露在某個地方,我可以使用它,但事實並非如此。 我不確定它是每個應用程序的一個根記錄器還是每個AppDomain的一個。如果它是每個AppDomain的一個,我可以嘗試從我的插件創建我自己的AppDomain,然後創建我自己的根記錄器。 – alimbada 2010-01-29 18:53:12