CA2254: A sablonnak statikus kifejezésnek kell lennie
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA2254 |
Cím | A sablonnak statikus kifejezésnek kell lennie |
Kategória | Használat |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Javaslatként |
Ok
A naplózó API-nak átadott üzenetsablon nem állandó. Ez akkor fordul elő, ha az átadott sablon sztringösszefűzést vagy interpolációt használ. Ehelyett a sablonnak állandó értéknek kell lennie, amely üzenetsablon formátumban jeleníti meg a naplóüzenetet. For example: "User {User} logged in from {Address}"
. További információ: Naplóüzenetsablon formázása.
Szabály leírása
A naplózás végrehajtásakor célszerű megőrizni a napló szerkezetét (beleértve a helyőrző neveket is) és a helyőrző értékeket. Ezen információk megőrzése jobb megfigyelhetőséget és keresést tesz lehetővé a naplóösszesítő és monitorozó szoftverekben.
Preferált:
var firstName = "Lorenz";
var lastName = "Otto";
// This tells the logger that there are FirstName and LastName properties
// on the log message, and correlates them with the argument values.
logger.Warning("Person {FirstName} {LastName} encountered an issue", firstName, lastName);
Nem előnyben részesített:
// DO NOT DO THIS
var firstName = "Lorenz";
var lastName = "Otto";
// Here, the log template itself is changing, and the association between named placeholders and their values is lost.
logger.Warning("Person " + firstName + " " + lastName + " encountered an issue");
// String interpolation also loses the association between placeholder names and their values.
logger.Warning($"Person {firstName} {lastName} encountered an issue");
A naplózási üzenet sablonja nem változhat a hívások között.
Szabálysértések kijavítása
Frissítse az üzenetsablont állandó kifejezésként. Ha közvetlenül a sablonban használ értékeket, módosítsa újra a sablont nevesített helyőrzők használatára.
logger.Warning("Person {FirstName} {LastName} encountered an issue", firstName, lastName);
Mikor kell letiltani a hibákat?
Ha a használati eset nem igényel strukturált naplózást, nyugodtan letilthatja a szabály figyelmeztetését. A szabályt akkor is nyugodtan letilthatja, ha a naplóüzenet-sablon egy erőforrásfájlban van definiálva.
Kapcsolódó információk
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: