Level log pada log4j

Apache log4j banyak digunakan dalam software yang menggunakan bahasa pemrograman Java. Seperti klaim yang ada pada website mereka "Apache Log4j is a versatile, industrial-grade Java logging framework composed of an API, its implementation, and components to assist the deployment for various use cases.". Merupakan framework logging pada Java yang berskala industri. Log4j bersifat open source sehingga developer bisa bebas menggunakannya. Jika anda developer yang menggunakan Spring boot biasanya anda menggunakan library ini untuk melakukan logging. Pada artikel ini saya akan berbagi mengenai level log pada log4j disertai contoh codenya.

Batasan bahasan

Seperti yang kita log4j pernah tedapat outgage dimana ada akses kedalam shell peristiwa yang dikenal dengan log4shell. Jadi kita gunakan saja log4j 2.23.1 yang kalau dilihat dari maven repository sudah tidak vulnerability lagi.Untuk mempermudah code juga saya menggunakan maven style project. Bisa gunakan link berikut untuk rujukan membuat maven project sederhana Creating a Spring Boot Project Using STS.

Apasih level pada log 4j

level pada log4j merupakan penanda suatu log berada pada level keparahannya / errornya apa. Adapun level yang sudah didefinisikan pada log4j adalah sebagai berikut:

Standar Level Nilai Int Value Deskripsi
OFF 0 Tidak mencatat message / pesan log apapun
FATAL 100 Biasanya digunakan untuk menandakan kesalahan yang fatal dan membuat program berhenti
ERROR 200 Penanda kesalahan yang serius dan harus ditangani secara segera
WARN 300 Penanda adanya potensi suatu kesalahan akan muncul
INFO 400 Penanda pesan informasi umum
DEBUG 500 Penanda pesan "debug" yang biasanya digunakan programmer
TRACE 600 Penanda pesan lebih detail lagi dari debug
ALL Integer.MAX_VALUE semua log level dicatat

Tabel diatas merupakan standar level yang ada pada log4j secara default. Angka int value di atas melambangkan level mana saja yang bakal masuk. Semakin tinggi nilai int maka semakin banyak log yang dibawa. Value ini berguna untuk menentukan log apa saja yang dicatat ketika program berjalan. Sebagai contoh pada code berikut:

Source Code 

LevelLog.java


Pada code ini ditampilkan  6 jenis log level. yang akan tercetak sesuai dengan konfigurasi log level pada xml filenya.

log4j2.xml


  • <Root level="error"> baris code ini akan menentukan log apa saja yang akan muncul. konfigurasi saat ini adalah "error". Maka akan muncul log FATAL dan ERROR. silahkan check pada hasil.
  • Begitu pula jika ganti ke trace maka akan muncul log : TRACE, DEBUG,INFO,WARN,ERROR, dan FATAL
  • Jika diganti ke level = "off", maka tidak akan muncul log apapun.

Hasil

hasil dari level = "error"

hasil dari level = "trace"
 
Singkatnya kita bisa melihat dari tabel berikut untuk log level bawaan Log4j.
tabel "visibility" level log terhadap konfigurasi level log4j. sumber (stackoverflow)


Custom level log4j

Lalu bagaimana jika kita ingin membuat level sendiri. Log4j Menyediakan hal tersebut. Saya akan membuat Level:
  • BAHAYA_TA dengan int value = 250. Di atas WARN di bawah ERROR
  • SEBAIKNYA_JANGAN_BERCANDA dengan int value = 150, di atas ERROR di bawah FATAL

LevelLogCustom.java

Hasil

hasil dari level = "warn" dengan custom Level Log

 
Untuk lihat projectnya anda bisa kunjungi github berikut: github

Sumber

 
Sekian dari saya kurang lebihnya saya mohon maaf, jangan lupa untuk berkomentar dan dibagikan jika dirasa bermanfaat. (Sufyan)

Posting Komentar untuk "Level log pada log4j"