NET Core的日志模型主要由三个核心对象构成,它们分别是Logger、LoggerProvider和LoggerFactory。总的来说,LoggerProvider提供一个具体的Logger对象将格式化的日志消息写入相应的目的地,但是我们在编程过程中使用的Logger对象则由LoggerFactory创建,这个Logger利用注册到LoggerFactory的LoggerProvider来提供真正具有日志写入功能的Logger,并委托后者来记录日志。
目录
一、Logger
扩展方法LogXxx与BeginScope
Logger<TCategoryName>
二、LoggerProvider
三、LoggerFactory
Logger提供的同一性
Logger类型
LoggerFactory类型
依赖注入
日志模型的Logger泛指所有实现了ILogger接口的所有类型以及对应对象,该接口定义在NuGet包“Microsoft.Extensions.Logging.Abstractions”中,这个NuGet包同时定义了分别代表LoggerProvider和LoggerFactory的接口ILoggerProvider和ILoggerFactory。ILogger接口中定义了如下三个方法Log、IsEnabled和BeginScope。
interface ILogger
2: {
string> formatter);
bool IsEnabled(LogLevel logLevel);
5: IDisposable BeginScope<TState>(TState state);
6: }