CA1848:請使用 LoggerMessage 委派
屬性 | 值 |
---|---|
規則識別碼 | CA1848 |
標題 | 使用 LoggerMessage 委派 |
類別 | 效能 |
修正程式是中斷或非中斷 | 不中斷 |
預設在 .NET 8 中啟用 | No |
原因
使用記錄器擴充方法 ,例如 LogInformation 和 LogDebug 。
檔案描述
對於高效能記錄的案例,請使用 LoggerMessage 模式。
如何修正違規
使用 LoggerMessage
來修正此規則的違規。
相較於記錄器擴充方法,LoggerMessage 提供下列效能優勢:
- 記錄器擴充方法需要 "boxing" (轉換) 實值型別,例如將
int
轉換為object
。 模式 LoggerMessage 可避免使用靜態 Action 欄位和具有強型別參數的擴充方法進行 Boxing。 - 記錄器擴充方法在每次寫入記錄訊息時,都必須剖析訊息範本 (具名格式字串)。 LoggerMessage 只需在定義訊息時剖析範本一次。
隱藏警告的時機
請勿隱藏此規則的警告。