本节主要介绍解决方案中的Microsoft.Framework.Logging.Abstractions、Microsoft.Framework.Logging俩个工程。

这俩个工程中所有类的关系如下图所示:

[Asp.net 5] Logging-日志系统的基本架构(上)

首先我们可以发现处于核心的是中间的四个接口:ILogger、ILoggerFactory、ILoggerProvider、ILogValues。

  • ILogger:记录日志的接口,所以写日志的类都该实现该接口,工程中有俩个类实现了该接口:Logger、Logger<T>
  • ILoggerFactory:创建ILogger的工厂。负责创建工厂的逻辑,但是一般不直接创建,而是调用内部ILoggerProvider去完成。
  • ILoggerProvider:能够直接创建ILogger实例,做为属性添加到ILoggerFactory中,ILogger的具体逻辑受控制ILoggerFactory。
  • ILogValues:在Logger的扩展方法中作为特殊类型的object传入,作为日志的数据源。

接口的定义源码如下:

    public interface ILogger
    {
        void Log(LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter);

        bool IsEnabled(LogLevel logLevel);
        
        IDisposable BeginScopeImpl(object state);
    }
ILogger

相关文章:

  • 2021-11-01
  • 2022-12-23
  • 2021-07-06
  • 2022-03-06
  • 2021-10-05
  • 2022-03-03
  • 2022-02-06
  • 2021-12-14
猜你喜欢
  • 2021-11-04
  • 2021-07-11
  • 2021-10-27
  • 2021-09-25
  • 2021-09-08
  • 2022-12-23
相关资源
相似解决方案