log4net實現多執行個體記錄

來源:互聯網
上載者:User

標籤:eve   詳細   htm   設定檔   檔案中   blog   arc   www   日誌記錄   

原文地址:實現多個LOG4NET日誌記錄器執行個體

本文內容為摘抄,請查看原文。

對於.NET Framework開發人員來說,使用Log4Net進行日誌記錄是非常方便的,通常只要寫好設定檔和簡單的編碼就可以輕鬆實現應用程式的日誌記錄功能。但是因為很多時候我們做開發沒有時間詳細閱讀文檔,所以也會因疏忽犯很多錯誤,下面寫的就是因為沒有仔細閱讀設定檔文檔引發的一個錯誤。

應用環境:
一個Web應用程式,採用三層體繫結構,所以記錄日誌的時候分為應用程式記錄檔、資料訪問日誌和操作記錄日誌三個日誌。三個日誌採用分開檔案儲存的方式,於是建立了三個日誌類,每個日誌類擁有一個Log4Net記錄器的執行個體,產生了以下問題:

1.設定檔中的日誌記錄器名稱對應
一般是在設定檔中增加Logger節點,用name屬性進行對應。在原始碼中建立日誌記錄器(Logger)的時候,使用GetLogger方法和日誌記錄器名稱即可獲得對應的日誌記錄器執行個體。我的日誌記錄其名稱是由類名獲得,使用GetType(…).Name的屬性進行設定。

2.設定檔中各記錄器書寫記錄層級的控制
通過Level標籤可以進行各記錄器的輸出層級控制,分別是Fatal(致命錯誤)、Error、Warning、Info、Debug,對應logger的同名方法。

3.解決同層級日誌書寫到其它日誌記錄器的問題(重點解決)
一般從網路上看到的例子裡面都設定了Root元素,我們也習慣於將Appender加到Root元素中,同時我們也會在各自對應的Logger標籤下面追加Appender。實際上Logger和Root是有繼承關係的,這也就意味著如果你一個Logger對應的Appender也被追加到了Root節點中,即使其它Logger沒有追加此Appender也會通過繼承Root的各項屬性而獲得向這個Appender輸出日誌的能力。讓個別的Logger不繼承Root的方法是在Logger的屬性additivity上設定false即可。

 

log4net實現多執行個體記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.