CA1848: Usare i delegati LoggerMessage
Proprietà | valore |
---|---|
ID regola | CA1848 |
Title | Usare i delegati LoggerMessage |
Categoria | Prestazioni |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 9 | 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
, inobject
. LoggerMessage evita la conversione boxing usando campi Action statici e metodi di estensione con parametri fortemente tipizzati. - 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
Collabora con noi su GitHub
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.