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özben production?
  • 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 WARNel 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 DEBUGmaradnak 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ó:

  1. 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.
  2. 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.
  3. 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.