C# 使用ILogger接口编写日志

.NET Core通过ILogger接口提供了一种灵活的日志记录机制,它使得日志记录与具体的日志技术解耦。通过依赖注入,可以在不同类中轻松使用相同的日志记录器实例。此外,ILogger接口支持多种日志级别,可通过扩展方法简化日志记录。

 

.NET 有几种不同的日志记录和跟踪工具,还有许多不同的第三方日志记录程序。尝试将一个应用程序从一种日志记录技术更改为另一种日志记录技术不是一件容易的事情,因为日志记录 API 的使用分布在整个源代码中。要使日志记录独立于任何日志记录技术,可以使用接口。

.NET Core 在NuGet 包 Microsoft.Extensions.Logging 中嵌入了泛型 ILogger接口。这个接口定义了 Log 方法。Log 方法定义了参数,来指定 LogLevel(枚举值)、事件ID(使用结构 EventId)、泛型状态信息、记录异常信息的 Exception类型,以及用字符串确定输出格式的格式化程序:

void Log<TState>(LogLevel logLevel, EventId eventide, TState state,   Exception exception, Func<TState, Exception, string> formatter)

除了 Log 方法之外,ILogger 接口还定义了 IsEnabled 方法,以基于 LogLevel检查日志记录是否启用,该接口也定义了方法 BeginScope,为日志记录返回可释放的作用域。ILogger 接口中的成员实际上是日志记录所需的全部。Log 方法有许多需要填充的参数。为了简化日志记录,在 LoggerExtensions 类中定义了 ILogger 接口的扩展方法。扩展方法,例如LogDebug、LogTrace、LogInformation、LogWarning、LogError、LogCritical 和 BeginScope 都有几个重载版本和易于使用的参数。

下面利用依赖注入,并使用包含的类 SampleController 作为一个泛型参数,注入ILogger 接口。泛型参数定义了日志记录器的类别。在泛型参数中,类别是由类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值