CA1848: использование делегатов LoggerMessage
Свойство | Значение |
---|---|
Идентификатор правила | CA1848 |
Заголовок | Использование делегатов LoggerMessage |
Категория | Производительность |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 8 | No |
Причина
Использование методов расширения средства ведения журнала, таких как LogInformation и LogDebug.
Описание правила
Для сценариев высокопроизводительного ведения журналов используйте шаблон LoggerMessage.
Устранение нарушений
Используется LoggerMessage
для устранения нарушений этого правила.
LoggerMessage предоставляет следующие преимущества производительности по сравнению с методами расширения для средства ведения журнала:
- Методы расширения для средства ведения журнала требуют "упаковку-преобразование" типов значений, таких как
int
, вobject
. Шаблон LoggerMessage избегает бокса с помощью статических Action полей и методов расширения с строго типизированными параметрами. - Методы расширения для средства ведения журнала должны анализировать шаблон сообщения (именованную строку формата) при каждой записи сообщения журнала. LoggerMessage требует анализировать шаблон всего один раз — при определении сообщения.
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует.
См. также
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.