4.1 A naplózási szintek listája
Megírtad a programodat, feltöltötted a szerverre, majd azonnal felmerülnek benned a kérdések:
- Hogyan lehet megbizonyosodni arról, hogy
debug()
a módszer nem működik munka közbenproduction
? - Túl sok információ van a naplókban, csak hibaüzeneteket szeretne hagyni?
- Hogyan tekinthet meg egy részletes naplót az alkalmazás egy részéhez?
A rönkök készítői persze évtizedekkel ezelőtt ugyanezzel szembesültek. Nem árulom el, hogyan oldották meg ezt a problémát C nyelven, de a Java nyelven nagyon szépen megoldották.
A napló szűri az adatokat, mielőtt az információkat a . A naplózási szint beállításával nagyon gyorsan csökkentheti/növelheti a napló részletességét. Ezeket a szinteket az alábbi táblázat írja le:
Szint | jegyzet | |
---|---|---|
1 | MINDEN | Naplózza az összes üzenetet |
2 | NYOM | Kis üzenet hibakereséskor |
3 | DEBUG | A hibakereséshez fontos üzenetek |
4 | INFO | Egyszerű üzenetek |
5 | FIGYELMEZTET | Csak végzetes, hiba és figyelmeztetés írjon |
6 | HIBA | Csak hibákat és végzetes hibákat írjon |
7 | HALÁLOS | Csak végzetes hibákat írjon |
8 | KI | Ne írjon üzenetet a naplóba |
Ezeket a szinteket az üzenetek szűrésére használják. Ha a naplózási szintet értékre állítja WARN
, akkor az összes kevésbé fontos üzenet WARN
el lesz vetve: TRACE
, DEBUG
, INFO
. Ha a szűrési szintet értékre állítja FATAL
, akkor még ERROR
.
A szűrés során további két súlyossági szint használatos – ez OFF
(minden üzenet elvetése) és ALL
– összes üzenet írása (semmi elvetése).
4.2 Naplóbeállítási példa
Nézzünk egy egyszerű naplóbeállítási példát. Ehhez szükségünk van a log4j.properties fájlra, amelyet az erőforrások mappába helyezhetünk. Adjuk hozzá a következő tartalmat:
# Root logger option
log4j.rootLogger=WARN, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}
Itt a legelső sorban beállítjuk a naplózási szintet - WARN
. Ez pedig azt jelenti, hogy a naplózóba írt állapotú üzenetek figyelmen kívül DEBUG
maradnak INFO
.
- Adja meg, hogy milyen típusú függeléket fogunk használni -
ConsoleAppender
- Adja meg, hol írjuk a naplót -
System.out
- Beállítjuk az osztályt, amely szabályozza a felvételi formátumot -
PatternLayout
- Állítsa be az összes üzenet rögzítési formátumát – dátum és idő
4.3 Népszerű naplózási hibák
És még egy fontos pont - a naplózásban előforduló népszerű hibák. Nincs túl sok lehetőség arra, hogy valamit megtegyünk, de számos gyakori hiba azonosítható:
- Túl sok naplózás . Nem szabad minden lépést naplózni, ami elméletileg fontos lehet. Van egy szabály: a naplók legfeljebb 10%-kal terhelhetik a teljesítményt . Ellenkező esetben teljesítményproblémák lesznek.
- Minden adat naplózása egy fájlba . Emiatt valamikor nagyon nehéz lesz olvasni/írni, nem beszélve arról, hogy bizonyos rendszereken fájlméret-korlátozások vannak.
- Rossz naplózási szintek használata . A fakitermelés minden szintjének világos határai vannak, és ezeket tiszteletben kell tartani. Ha a határ homályos, megegyezhet, hogy melyik szintet használja.
GO TO FULL VERSION