SuperAPI AI 工具集

dotnet-logging-configuration

部署与运维

查看项目

更新于 10-16 03:42

技能介绍

用途:为 .NET 项目配置结构化日志,遵循 Microsoft 最佳实践,覆盖 ILogger<T>、ILoggerFactory、结构化日志、源生成器与 Serilog 集成。

主要能力: 1)ILogger<T>:注入服务,按类型名自动分类,标准服务日志记录。 2)ILoggerFactory:需要动态创建日志器时使用,例如工厂类、插件系统或未知类型场景。 3)结构化日志:使用占位符而非字符串插值,保留日志属性以便分析;记录异常时先传异常参数。 4)源生成器:通过 [LoggerMessage] 声明静态 partial 方法,按 EventId 与日志级别分组,减少分配并编译期校验模板。 5)Serilog:配置最小级别、Microsoft/EF Core 级别覆盖、Enrich(FromLogContext、MachineName、EnvironmentName)、控制台与文件 Sink、滚动与保留策略,以及 UseSerilogRequestLogging 中间件。 6)富化器:CorrelationIdEnricher 从 X-Correlation-ID 请求头或生成关联 ID;UserContextEnricher 写入 UserId 与 UserName。 7)注册:在 DependencyInjection 中 ClearProviders 后 AddSerilog(dispose: true),并注册富化器;appsettings.json 可配置 Logging.LogLevel 与 Serilog 节。

使用方式:在服务构造函数注入 ILogger<T>;需要动态分类时注入 ILoggerFactory 并调用 CreateLogger;建议集中定义 LogEvents 静态类并在处理器中调用扩展方法;Program.cs 中创建 LoggerConfiguration 并 builder.Host.UseSerilog()。

适用场景:采用整洁架构的 .NET 应用、Web API、后台服务与插件系统,需要结构化、可关联、可富化的日志。

限制:资料仅提供模板与配置示例,未给出 NuGet 安装命令、包版本、源码仓库地址及价格信息,暂未提供。