標籤:c style blog a http get
介紹
現在我們已經有了基礎的架構了,是時候新增內容了,那麼我們首先應該考慮的就是在應用程式中添加日誌功能。我們會使用Windsor來配置,在這一部分,你將學習Windsor之外的其他功能。
Logging Facility
在上一部分說過,Windsor有很多內建的可選的功能組件,他們擴充了Windsor的即用性。在這一部分,我們將在程式中添加日誌功能。
Logging Facility提供了一些常用的日誌架構比如Log4net、Nlog,以及mvc內建的日誌架構Trace。Logging Facility將提供一個抽象類別,這樣當你的程式切換其他日誌架構的時候不會很麻煩。更重要的是,Facility根據需要提供Ilogger執行個體,不需要任何靜態依賴。
我們需要添加必須的包,啟動Nuget‘s Package Manager Console並鍵入:
Install-Package Castle.Windsor-log4net
這將會把依賴想都添加到程式中:
Installer
接下來添加程式集的引用,建立一個Installer來添加日誌功能到程式中:
注意API的調用模式,泛型參數指定我們想要添加的類型,然後用lambda運算式制定類型為log4net.
我們沒有指定log4net的設定檔,預設的配置是在log4net.Config檔案,這是log4net配置的核心檔案。我們在程式中添加一個設定檔,包含標準的log4net配置資訊:
然後修改Installer類:
What we just did?
你可能會問:這怎麼使用?你要做的就是調用Castle.Core.Logging.Ilogger命名空間下的Ilogger介面(常用的做法是使用屬性,而不是建構函式)。容器將提供配置並且準備使用Ilogger執行個體。為了說明我們在AccountController中添加了一個警告日誌,當使用者登入密碼錯誤時記錄日誌:
如果log4net的配置是正確的,那麼現在登入錯誤的日誌將被記錄。