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
- https://logging.apache.org/log4j/2.x/index.html diakses 31 Maret 2024
- https://nvd.nist.gov/vuln/detail/CVE-2021-44228 diakses 31 Maret 2024
- https://www.tutorialspoint.com/log4j/log4j_logging_levels.htm diakses 31 Maret 2024
- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core diakses 31 Maret 2024.
- https://www.javatpoint.com/creating-spring-boot-project-using-sts diakses 31 Maret 2024
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"
Berilah komentar, saran, dan kritik dengan bijak