CA1848:請使用 LoggerMessage 委派
屬性 | 值 |
---|---|
規則識別碼 | CA1848 |
標題 | 使用 LoggerMessage 委派 |
類別 | 效能 |
修正程式是中斷或非中斷 | 不中斷 |
預設在 .NET 8 中啟用 | No |
原因
使用記錄器擴充方法 ,例如 LogInformation 和 LogDebug 。
檔案描述
對於高效能記錄的案例,請使用 LoggerMessage 模式。
如何修正違規
使用 LoggerMessage
來修正此規則的違規。
相較於記錄器擴充方法,LoggerMessage 提供下列效能優勢:
- 記錄器擴充方法需要 "boxing" (轉換) 實值型別,例如將
int
轉換為object
。 模式 LoggerMessage 可避免使用靜態 Action 欄位和具有強型別參數的擴充方法進行 Boxing。 - 記錄器擴充方法在每次寫入記錄訊息時,都必須剖析訊息範本 (具名格式字串)。 LoggerMessage 只需在定義訊息時剖析範本一次。
隱藏警告的時機
請勿隱藏此規則的警告。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應