4.1 Dhaptar tingkat logging
Sampeyan nulis program sampeyan, diunggah menyang server, banjur sampeyan langsung duwe pitakon:
- Kepiye cara mesthekake yen
debug()
metode kasebut ora bisa digunakake nalika nggarapproduction
? - Ana akeh banget informasi ing log, apa sampeyan mung pengin ninggalake pesen kesalahan?
- Kepiye carane ndeleng log rinci kanggo siji bagean saka aplikasi kasebut?
Mesthine, sing nggawe log ngadhepi perkara sing padha puluhan taun kepungkur. Aku ora bakal pitutur marang kowe carane masalah iki ditanggulangi ing basa C, nanging ing basa Jawa wis ditanggulangi apik banget.
Log nyaring data sadurunge nulis informasi menyang . Sampeyan bisa kanthi cepet nyuda / nambah rincian log kanthi nyetel level logging. Tingkat kasebut diterangake ing tabel ing ngisor iki:
tingkat | Cathetan | |
---|---|---|
1 | KABEH | Log kabeh pesen |
2 | TRACE | Pesen cilik nalika debugging |
3 | DEBUG | Pesen penting kanggo debugging |
4 | INFO | Pesen prasaja |
5 | WARNING | Tulis mung fatal, kesalahan lan bebaya |
6 | ERROR | Tulis mung kesalahan lan kesalahan fatal |
7 | FATAL | Tulis mung kesalahan fatal |
8 | OFF | Aja nulis pesen menyang log |
Tingkat iki digunakake nalika nyaring pesen. Yen sampeyan nyetel level log menyang WARN
, banjur kabeh pesen sing kurang penting tinimbang WARN
bakal dibuwang: TRACE
, DEBUG
, INFO
. Yen sampeyan nyetel tingkat nyaring dadi FATAL
, banjur malah ERROR
.
Ana rong tingkat keruwetan liyane sing digunakake kanggo nyaring - iki OFF
(mbucal kabeh pesen) lan ALL
- nulis kabeh pesen (mbucal apa-apa).
4.2 Conto persiyapan log
Ayo goleki conto persiyapan log sing prasaja. Kanggo nindakake iki, kita kudu file log4j.properties, kang bisa diselehake ing folder sumber. Ayo ditambahake konten ing ngisor iki:
# 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}
Kene ing baris pisanan kita nyetel tingkat logging - WARN
. Lan iki tegese pesen sing ditulis menyang logger kanthi status DEBUG
bakal INFO
diabaikan.
- Nemtokake jinis appender apa sing bakal digunakake -
ConsoleAppender
- Nemtokake ngendi kita bakal nulis log -
System.out
- Kita nyetel kelas sing bakal ngontrol format rekaman -
PatternLayout
- Setel format rekaman kanggo kabeh pesen - tanggal lan wektu
4.3 Kesalahan logging populer
Lan siji liyane penting - kesalahan populer ing logging. Ora ana akeh pilihan kanggo nindakake, nanging sawetara kesalahan umum bisa diidentifikasi:
- Kakehan logging . Sampeyan ora kudu nyathet saben langkah, sing sacara teoritis bisa dadi penting. Ana aturan: log bisa mbukak kinerja ora luwih saka 10% . Yen ora, bakal ana masalah kinerja.
- Log kabeh data menyang siji file . Iki bakal dadi angel banget kanggo maca / nulis ing sawetara titik, ora kanggo sebutno ana watesan ukuran file ing sistem tartamtu.
- Nggunakake level logging sing salah . Saben tingkat logging nduweni wates sing jelas, lan kudu diajeni. Yen wates iku samar, sampeyan bisa setuju ing tingkat kang digunakake.