CA1848:使用 LoggerMessage 委托
属性 | 值 |
---|---|
规则 ID | CA1848 |
标题 | 使用 LoggerMessage 委托 |
类别 | “性能” |
修复是中断修复还是非中断修复 | 非中断 |
在 .NET 8 中默认启用 | 否 |
原因
使用记录器扩展方法,例如 LogInformation 和 LogDebug。
规则说明
对于高性能日志记录方案,请使用 LoggerMessage 模式。
如何解决冲突
使用 LoggerMessage
修复此规则的违规。
与记录器扩展方法相比,LoggerMessage 具有以下性能优势:
- 记录器扩展方法需要将值类型(例如
int
)“装箱”(转换)到object
中。 LoggerMessage 模式使用带强类型参数的静态 Action 字段和扩展方法来避免装箱。 - 记录器扩展方法每次写入日志消息时必须分析消息模板(命名的格式字符串)。 如果已定义消息,那么 LoggerMessage 只需分析一次模板即可。
何时禁止显示警告
不禁止显示此规则发出的警告。