CA1848:使用 LoggerMessage 委托

属性
规则 ID CA1848
标题 使用 LoggerMessage 委托
类别 “性能”
修复是中断修复还是非中断修复 非中断
在 .NET 8 中默认启用

原因

使用记录器扩展方法,例如 LogInformationLogDebug

规则说明

对于高性能日志记录方案,请使用 LoggerMessage 模式。

如何解决冲突

使用 LoggerMessage 修复此规则的违规。

与记录器扩展方法相比,LoggerMessage 具有以下性能优势:

  • 记录器扩展方法需要将值类型(例如 int)“装箱”(转换)到 object 中。 LoggerMessage 模式使用带强类型参数的静态 Action 字段和扩展方法来避免装箱。
  • 记录器扩展方法每次写入日志消息时必须分析消息模板(命名的格式字符串)。 如果已定义消息,那么 LoggerMessage 只需分析一次模板即可。

何时禁止显示警告

不禁止显示此规则发出的警告。

另请参阅