.NET 黑魔法 - 自定义日志扩展

我们开发程序时避免不了要有日志系统,我们希望有一个通用的、不夹杂任何方言的调用方式,简单地说就是保留微软日志框架的注入方式和使用方式。

比如我们希望这样调用:

.NET 黑魔法 - 自定义日志扩展

我们不希望有个 IAbcLogger, IMyLogger, IWhosLogger,这样会给使用者造成一定的学习成本。

那么,在.net平台下可以使用微软的日志扩展及依赖注入

首先,需要buget引用这2个:

.NET 黑魔法 - 自定义日志扩展.NET 黑魔法 - 自定义日志扩展

以asp.net core为例,这样使用:

.NET 黑魔法 - 自定义日志扩展

使用了这个提供程序.net core框架就会遵循你自己的日志处理逻辑,Provider这样实现:

.NET 黑魔法 - 自定义日志扩展

这个SharpLogger就是日志数据真正被存储的地方:

.NET 黑魔法 - 自定义日志扩展

.NET 黑魔法 - 自定义日志扩展

当然,可以根据你的需要编写日志事务与日志的处理级别,BeginScope IsEnabled这2个方法便是。

 Log<TState>() 参数忽略,这个方法便是日志的保存方法,自由发挥吧。

:)