Fork me on GitHub

ABP源码分析八:Logger集成

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实例(实现CastleIlogger接口)完成log操作

 

LoggerExtensions: 扩展了CastleIlogger接口的方法,封装更便捷的方法供Loghelper调用。

 

 

在具体的web项目的application_start方法中注入logger实例。以下是注入log4net代码

 

返回ABP源码分析系列文章目录

posted @ 2016-03-21 19:44 ZHK的博客 阅读(...) 评论(...) 编辑 收藏