CA1848: Usare i delegati LoggerMessage

Proprietà valore
ID regola CA1848
Titolo Usare i delegati LoggerMessage
Categoria Prestazioni
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione
Abilitato per impostazione predefinita in .NET 8 No

Causa

Uso di metodi di estensione del logger, ad esempio LogInformation e LogDebug.

Descrizione regola

Per gli scenari di registrazione a prestazioni elevate, usare LoggerMessage.

Come correggere le violazioni

Usare LoggerMessage per correggere le violazioni di questa regola.

LoggerMessage offre i seguenti vantaggi in termini di prestazioni rispetto ai metodi di estensione del logger:

  • I metodi di estensione del logger richiedono una "conversione boxing" dei tipi di valori, ad esempio int, in object. Il LoggerMessage modello evita la conversione boxing usando campi statici Action e metodi di estensione con parametri fortemente tipizzato.
  • I metodi di estensione del logger devono analizzare il modello di messaggio (stringa di formato denominata) ogni volta che viene scritto un messaggio del log. Solo LoggerMessage richiede una sola analisi del modello durante la definizione del messaggio.

Quando eliminare gli avvisi

Non escludere un avviso da questa regola.

Vedi anche