分享方式:


CA1848:請使用 LoggerMessage 委派

屬性
規則識別碼 CA1848
標題 使用 LoggerMessage 委派
類別 效能
修正程式是中斷或非中斷 不中斷
預設在 .NET 8 中啟用 No

原因

使用記錄器擴充方法 ,例如 LogInformationLogDebug

檔案描述

對於高效能記錄的案例,請使用 LoggerMessage 模式。

如何修正違規

使用 LoggerMessage 來修正此規則的違規。

相較於記錄器擴充方法,LoggerMessage 提供下列效能優勢:

  • 記錄器擴充方法需要 "boxing" (轉換) 實值型別,例如將 int 轉換為 object。 模式 LoggerMessage 可避免使用靜態 Action 欄位和具有強型別參數的擴充方法進行 Boxing。
  • 記錄器擴充方法在每次寫入記錄訊息時,都必須剖析訊息範本 (具名格式字串)。 LoggerMessage 只需在定義訊息時剖析範本一次。

隱藏警告的時機

請勿隱藏此規則的警告。

另請參閱