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