我正在使用Log4Net v1.2.13.0和.Net 4.5。當我將我的代碼作爲控制檯應用程序運行時,它的記錄效果很好。但是,當我將其作爲服務運行時,我什麼也得不到。該服務以管理員權限登錄時運行。當我附加到進程並在調試模式下遍歷代碼時,就好像配置文件中沒有任何內容已經被讀取。當您檢查記錄器對象時,沒有任何屬性設置爲真,例如Logger.IsDebugEnabled,Logger.IsInfoEnabled等未使用Log4Net記錄的Windows服務
這是我如何配置記錄器實例,然後檢索相同的實例。
private static readonly ILog Logger = LogManager.GetLogger(typeof(ServiceHostService));
我將日誌記錄級別設置爲ALL。
關於可能出錯的任何想法?
您是否稱爲Log4Net.Configure某處? – Alessio 2015-02-24 20:00:11
確保您的服務具有對Log4net寫入的文件的寫入權限。這不僅僅是安全訪問問題。 – code5 2015-02-24 20:42:08
不,我沒有在代碼的任何地方調用Log4Net.Configure。我從別人那裏繼承了這段代碼,它從來沒有調用過它,並且始終作爲控制檯應用程序運行良好,但現在我正在推廣到服務。我正在寫入數據庫表和事件日誌,但不是文件。服務已在管理員框中登錄,並以數據庫的dbo身份登錄。 – 2015-02-25 00:30:18