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 nggarap production?
  • 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 WARNbakal 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 DEBUGbakal INFOdiabaikan.

  • 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:

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