ABP框架学习记录(6)- Logging解析
ABP使用Castle日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog… 等等。对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方便的处理各种特殊的日志库,而且当业务需要的时候,很容易替换日志组件。
LogSeverity
:表示日志的严重性,枚举类型,定义了5个日志级别:Info,Debug,Warn,Error, Fatal。
IHasLogSeverity
:封装了LogSeverity。AbpAuthorizationException
,AbpValidationException
,UserFriendlyException
实现了这个接口。Loghelper
在对 Exception
做log的时候可以方便的通过实现了IHasLogSeverity
的 Exception
的实例获取到 LogSeverity
,以确定log 级别。
AbpAuthorizationException
:
LogHelper
的实现:把继承 IHasLogSeverity
接口的对象,转换成 IHasLogSeverity
对象,并获取log级别。
LoggerExtensions
: 扩展了Castle的Ilogger接口的方法,封装更便捷的方法供Loghelper调用。
web项目的application_start方法中注入logger实例:
参考: