ABP使用Castle日志記錄工具,並且可以使用不同的日志類庫,比如:Log4Net, NLog, Serilog... 等等。對於所有的日志類庫,Castle提供了一個通用的接口來實現,我們可以很方便的處理各種特殊的日志庫,而且當業務需要的時候,很容易替換日志組件。
Logger功能模塊涉及到的接口和類不多,相對容易理解。
LogSeverity: 枚舉類型,定義了5個日志級別:Info,Debug,Warn,Error, Fatal.
IHasLogSeverity:封裝了LogSeverity。UserFriendlyException,AbpValidationException實現了這個接口。Loghelper在對exeption做log的時候可以方便的通過實現了IHasLogSeverity的exeption的實例獲取到logSeverity。然后根據logSeverity的級別log.
Loghelper: 靜態類。調用logger實例(實現Castle的Ilogger接口)完成log操作。
LoggerExtensions: 擴展了Castle的Ilogger接口的方法,封裝更便捷的方法供Loghelper調用。
在具體的web項目的application_start方法中注入logger實例。以下是注入log4net代碼