CA1848: использование делегатов LoggerMessage

Свойство Значение
Идентификатор правила CA1848
Заголовок Использование делегатов LoggerMessage
Категория Производительность
Исправление является критическим или не критическим Не критическое
Включен по умолчанию в .NET 8 No

Причина

Использование методов расширения средства ведения журнала, таких как LogInformation и LogDebug.

Описание правила

Для сценариев высокопроизводительного ведения журналов используйте шаблон LoggerMessage.

Устранение нарушений

Используется LoggerMessage для устранения нарушений этого правила.

LoggerMessage предоставляет следующие преимущества производительности по сравнению с методами расширения для средства ведения журнала:

  • Методы расширения для средства ведения журнала требуют "упаковку-преобразование" типов значений, таких как int, в object. Шаблон LoggerMessage избегает бокса с помощью статических Action полей и методов расширения с строго типизированными параметрами.
  • Методы расширения для средства ведения журнала должны анализировать шаблон сообщения (именованную строку формата) при каждой записи сообщения журнала. LoggerMessage требует анализировать шаблон всего один раз — при определении сообщения.

Когда лучше отключить предупреждения

Для этого правила отключать вывод предупреждений не следует.

См. также