ABP使用Castle日誌記錄工具,而且能夠使用不一樣的日誌類庫,好比:Log4Net, NLog, Serilog... 等等。對於全部的日誌類庫,Castle提供了一個通用的接口來實現,咱們能夠很方便的處理各類特殊的日誌庫,並且當業務須要的時候,很容易替換日誌組件。html
Logger功能模塊涉及到的接口和類很少,相對容易理解。web
LogSeverity: 枚舉類型,定義了5個日誌級別:Info,Debug,Warn,Error, Fatal.app
IHasLogSeverity:封裝了LogSeverity。UserFriendlyException,AbpValidationException實現了這個接口。Loghelper在對exeption作log的時候能夠方便的經過實現了IHasLogSeverity的exeption的實例獲取到logSeverity。而後根據logSeverity的級別log.工具
Loghelper: 靜態類。調用logger實例(實現Castle的Ilogger接口)完成log操做。源碼分析
LoggerExtensions: 擴展了Castle的Ilogger接口的方法,封裝更便捷的方法供Loghelper調用。spa
在具體的web項目的application_start方法中注入logger實例。如下是注入log4net代碼日誌
返回ABP源碼分析系列文章目錄htm