用途:把项目中的 ILogger 日志调用改写为 LoggerMessage 源生成器形式,以获得高性能、AOT 兼容的日志,避免装箱开销,并在编译期解析消息模板。
主要能力:查找 ILogger 字段/参数声明及 LogInformation、LogWarning、LogError、LogDebug、LogTrace、LogCritical 调用;按功能领域把日志分组为扩展类,如 LoggingValidationExtensions、LoggingAuthenticationExtensions、LoggingDatabaseExtensions、LoggingHttpExtensions、LoggingCacheExtensions、LoggingMessagingExtensions;用 partial static 类加扩展方法承载日志;按类别分配 EventId 区间(1000-1999 验证、2000-2999 认证、3000-3999 数据库、4000-4999 HTTP、5000-5999 缓存、6000-6999 消息、7000-7999 通用/应用)。
使用方式:先搜索并记录日志模板与参数,再按领域分组,创建带 [LoggerMessage] 的 partial 扩展方法,把内联调用替换为扩展方法调用,最后运行 dotnet build 验证。构建失败时检查扩展类命名空间的 using、参数类型不匹配、EventId 重复。
限制与注意:需要 .NET 6+,源生成器内置于 SDK;占位符建议用 PascalCase(如 {EntityType}),匹配不区分大小写;扩展方法支持 logger.MethodName() 链式写法;partial 类是源生成器生成实现所必需。资料未提供其他平台、收费或效果信息。