.NET 黑魔法 - 自定义日志扩展
我们开发程序时避免不了要有日志系统,我们希望有一个通用的、不夹杂任何方言的调用方式,简单地说就是保留微软日志框架的注入方式和使用方式。
比如我们希望这样调用:
我们不希望有个 IAbcLogger, IMyLogger, IWhosLogger,这样会给使用者造成一定的学习成本。
那么,在.net平台下可以使用微软的日志扩展及依赖注入
首先,需要buget引用这2个:
以asp.net core为例,这样使用:
使用了这个提供程序.net core框架就会遵循你自己的日志处理逻辑,Provider这样实现:
这个SharpLogger就是日志数据真正被存储的地方:
当然,可以根据你的需要编写日志事务与日志的处理级别,BeginScope IsEnabled这2个方法便是。
Log<TState>() 参数忽略,这个方法便是日志的保存方法,自由发挥吧。
:)