CodeGym /Kursus /All lectures for ID purposes /Mengatur tingkat logging

Mengatur tingkat logging

All lectures for ID purposes
Level 1 , Pelajaran 950
Tersedia

4.1 Daftar level logging

Anda menulis program Anda, mengunggahnya ke server, dan kemudian Anda segera mulai memiliki pertanyaan:

  • Bagaimana cara memastikan bahwa debug()metode ini tidak berfungsi saat bekerja production?
  • Ada terlalu banyak informasi di log, apakah Anda hanya ingin meninggalkan pesan kesalahan?
  • Bagaimana cara melihat log terperinci untuk satu bagian aplikasi?

Tentu saja, pembuat log menghadapi hal yang sama beberapa dekade lalu. Saya tidak akan memberi tahu Anda bagaimana masalah ini diselesaikan dalam bahasa C, tetapi dalam bahasa Java masalah ini diselesaikan dengan sangat indah.

Log memfilter data sebelum menulis informasi ke file . Anda dapat dengan cepat mengurangi/meningkatkan detail log dengan menyetel level logging. Level-level tersebut dijelaskan dalam tabel di bawah ini:

Tingkat Catatan
1 SEMUA Log semua pesan
2 JEJAK Pesan kecil saat debugging
3 DEBUG Pesan penting untuk debugging
4 INFO Pesan sederhana
5 MEMPERINGATKAN Tulis hanya fatal, error dan peringatan
6 KESALAHAN Tulis hanya kesalahan dan kesalahan fatal
7 FATAL Tulis hanya kesalahan fatal
8 MATI Jangan menulis pesan ke log

Level ini digunakan saat memfilter pesan. Jika Anda menyetel tingkat pencatatan ke WARN, maka semua pesan yang kurang penting dari itu WARNakan dibuang: TRACE, DEBUG, INFO. Jika Anda menyetel tingkat pemfilteran ke FATAL, bahkan ERROR.

Ada dua tingkat keparahan lagi yang digunakan dalam pemfilteran - ini OFF(buang semua pesan) dan ALL- tulis semua pesan (buang apa pun).

4.2 Contoh penyiapan log

Mari kita lihat contoh penyiapan log sederhana. Untuk melakukan ini, kita memerlukan file log4j.properties, yang dapat ditempatkan di folder sumber daya. Mari tambahkan konten berikut ke dalamnya:

# 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}

Di sini, di baris pertama kami mengatur level logging - WARN. Dan ini berarti pesan yang ditulis ke logger dengan status DEBUGakan INFOdiabaikan.

  • Tentukan jenis appender apa yang akan kita gunakan -ConsoleAppender
  • Tentukan di mana kita akan menulis log -System.out
  • Kami menetapkan kelas yang akan mengontrol format perekaman -PatternLayout
  • Atur format perekaman untuk semua pesan - tanggal dan waktu

4.3 Kesalahan logging yang populer

Dan satu hal penting lagi - kesalahan populer dalam logging. Tidak banyak pilihan untuk melakukan sesuatu, tetapi beberapa kesalahan umum dapat diidentifikasi:

  1. Terlalu banyak penebangan . Anda tidak boleh mencatat setiap langkah, yang secara teoritis bisa jadi penting. Ada aturannya: log dapat memuat kinerja tidak lebih dari 10% . Kalau tidak, akan ada masalah kinerja.
  2. Mencatat semua data ke dalam satu file . Ini akan menyebabkan sangat sulit untuk membaca/menulis di beberapa titik, belum lagi ada batasan ukuran file pada sistem tertentu.
  3. Menggunakan level logging yang salah . Setiap tingkat penebangan memiliki batas yang jelas, dan harus dihormati. Jika batasnya tidak jelas, Anda dapat menyepakati level mana yang akan digunakan.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION