CA1848: Usar os delegados LoggerMessage
Property | Valor |
---|---|
ID da regra | CA1848 |
Título | Use os delegados LoggerMessage |
Categoria | Desempenho |
Correção interruptiva ou sem interrupção | Sem interrupção |
Habilitado por padrão no .NET 8 | Não |
Causa
Uso de métodos de extensão do agente, como LogInformation e LogDebug.
Descrição da regra
Para cenários de registro em log de alto desempenho, use o padrão LoggerMessage.
Como corrigir violações
Use LoggerMessage
para corrigir as violações dessa regra.
LoggerMessage fornece as seguintes vantagens de desempenho em relação aos métodos de extensão do Agente:
- Métodos de extensão do agente exigem tipos de valor de conversão boxing, como
int
, emobject
. O padrão LoggerMessage evita a conversão boxing usando campos Action estáticos e métodos de extensão com parâmetros fortemente tipados. - Os métodos de extensão do agente precisam analisar o modelo de mensagem (cadeia de caracteres de formato nomeada) sempre que uma mensagem de log é gravada. LoggerMessage exige apenas a análise de um modelo uma vez quando a mensagem é definida.
Quando suprimir avisos
Não suprima um aviso nessa regra.
Confira também
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.