1.Kelebihan Log4j
Log4j adalah proyek open source Apache. Dengan menggunakan Log4j, kita dapat mengontrol lokasi pengiriman informasi log; kita juga dapat mengontrol format output setiap log; dengan menentukan level setiap informasi log, kita dapat mengontrol lebih banyak log in detail.proses pembangkitan. Hal yang paling menarik adalah ini dapat dikonfigurasi secara fleksibel melalui file konfigurasi tanpa mengubah kode aplikasi.
Manfaat log4j adalah:
(1) Dengan memodifikasi file konfigurasi, Anda dapat menentukan tujuan konsol informasi log, file, komponen GUI, bahkan server soket, perekam kejadian NT, daemon UNIX Syslog, dll.
(2) Dengan memodifikasi file konfigurasi, Anda dapat menentukan tingkat setiap pesan log untuk mengontrol apakah pesan tersebut dikeluarkan. Selama tahap pengembangan sistem, informasi log terperinci dapat dicetak untuk melacak operasi sistem. Setelah sistem stabil, keluaran log dapat dimatikan, sehingga melacak operasi sistem sekaligus mengurangi kode sampah (System.out.println(.. ....)Tunggu).
(3) Penggunaan log4j memerlukan mekanisme log terpadu untuk keseluruhan sistem, yang kondusif untuk perencanaan sistem.
2. File konfigurasi
Log4j terdiri dari tiga komponen penting: prioritas informasi log, tujuan keluaran informasi log, dan format keluaran informasi log. Prioritas informasi log dari tinggi ke rendah mencakup FATAL, ERROR, WARN, INFO, DEBUG, TRACE, dan ALL, yang masing-masing digunakan untuk menentukan pentingnya informasi log ini; tujuan keluaran dari informasi log menentukan bahwa log tersebut akan dicetak ke konsol Atau dalam file; dan format keluaran mengontrol konten tampilan informasi log.
2.1 Prioritas informasi log
Log4j merekomendasikan hanya menggunakan empat level. Prioritas dari tinggi ke rendah adalah ERROR, WARN, INFO, dan DEBUG. Melalui level yang ditentukan di sini, Anda dapat mengontrol aktif dan nonaktif level informasi log yang sesuai dalam aplikasi. Jika level INFO ditentukan di sini, semua informasi log di bawah level INFO dalam aplikasi tidak akan dicetak.
2.2 Penggunaan sumber keluaran
Mengaktifkan atau menonaktifkan permintaan logging secara selektif hanyalah sebagian dari fungsi Log4j. Log4j memungkinkan permintaan logging dikeluarkan ke beberapa sumber keluaran. Dalam istilah Log4j, sumber keluaran disebut Appender.
Appender mencakup konsol, file, komponen GUI, server soket jarak jauh, JMS, NT Event Logger, daemon UNIX Syslog jarak jauh (layanan log latar belakang UNIX jarak jauh). Itu juga dapat merekam secara asinkron. Seorang logger dapat mengatur lebih dari satu appender. Tambahkan appender ke logger tertentu menggunakan metode addAppender. Untuk logger tertentu, setiap permintaan log yang valid diteruskan ke semua appender logger dan appender dari logger induk logger.
2.2.1 ConsoleAppender
Jika ConsoleAppender digunakan, informasi log akan ditulis ke Console. Efeknya setara dengan mencetak informasi langsung ke System.out.
2.2.2 Penambah File
Menggunakan FileAppender, informasi log akan ditulis ke file yang ditentukan. Ini seharusnya menjadi situasi yang lebih sering digunakan. Oleh karena itu, nama file keluaran log harus ditentukan dalam file konfigurasi. Konfigurasi berikut menentukan nama file log log.txt.
log4j.appender.appendername.File=log.txt Perhatikan bahwa appendername diganti dengan alias Appender dalam konfigurasi tertentu.
Catatan: Masalah dengan jalur file log yang ditentukan
2.2.3 DailyRollingAppender
Anda dapat menggunakan FileAppender untuk mengeluarkan informasi log ke suatu file, tetapi jika file terlalu besar, maka akan merepotkan untuk dibaca. Saat ini Anda dapat menggunakan DailyRollingAppender. DailyRollingAppender dapat menampilkan informasi Log ke file yang dipisahkan berdasarkan tanggal. File konfigurasi akan menghasilkan file log setiap hari (waktu dapat diatur), dan setiap file log hanya mencatat informasi log hari itu:
Copy kode kodenya sebagai berikut:
log4j.appender.appendername=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Aappendername.file=log
log4j.appender.appendername.DatePattern='.'yyyy-MM-dd
log4j.appender.appendername.layout=org.apache.log4j.PatternLayout
log4j.appender.appendername.layout.ConversionPattern= %5r %-5p %c{2} - %m%n
2.2.4 RollingFileAppender
File baru dihasilkan ketika ukuran file mencapai ukuran yang ditentukan.
Copy kode kodenya sebagai berikut:
og4j.appender.appendername=org.apache.log4j.RollingFileAppender
log4j.appender.appendername.File= ../logs/rlog.log
#Kontrol ukuran file log maksimum
log4j.appender.appendername.MaxFileSize=100KB
# Arsipkan file log (satu file cadangan di sini)
log4j.appender.appendername.MaxBackupIndex=1
log4j.appender.appendername.layout=org.apache.log4j.PatternLayout
log4j.appender.appendername.layout.ConversionPattern=%p %t %c - %m%n
File konfigurasi ini menentukan nama tambahan sumber keluaran, yang merupakan file log berputar. File terbesar adalah 100KB. Ketika file log mencapai ukuran maksimum, Log4J akan secara otomatis mengganti nama rlog.log menjadi rlog.log.1, lalu membuat ulang file rlog.log baru, dan memutar secara berurutan.
2.2.5 PenulisPenambahan
Kirim informasi log ke tempat tertentu dalam format streaming.
2.3 Konfigurasi tata letak
Tata letak menentukan gaya keluaran informasi log.
2.3.1 Gaya tata letak
Copy kode kodenya sebagai berikut:
org.apache.log4j.HTMLLayout (tata letak dalam format tabel HTML),
org.apache.log4j.PatternLayout (dapat secara fleksibel menentukan pola tata letak),
org.apache.log4j.SimpleLayout (berisi level dan string informasi dari informasi log),
org.apache.log4j.TTCCLayout (berisi informasi waktu pembuatan log, thread, kategori, dll.)
2.3.2 Formatnya
Copy kode kodenya sebagai berikut:
%m menampilkan pesan yang ditentukan dalam kode
%p prioritas keluaran yaitu DEBUG, INFO, WARN, ERROR, FATAL
%r Menampilkan jumlah milidetik yang diperlukan dari startup aplikasi hingga mengeluarkan informasi log.
%c menampilkan kategori tempatnya, biasanya nama lengkap kelasnya.
%t menampilkan nama thread yang menghasilkan peristiwa log
%n mengeluarkan karakter carriage return dan line feed, yaitu "rn" pada platform Windows dan "n" pada platform Unix.
%d menampilkan tanggal atau waktu titik waktu log. Format defaultnya adalah ISO8601. Anda juga dapat menentukan format setelahnya, seperti: %d{yyy MMM dd HH:mm:ss,SSS} : 18 Oktober 2002. 22:10:28,921
%l Menampilkan lokasi terjadinya peristiwa log, termasuk nama kategori, thread tempat terjadinya, dan nomor baris dalam kode. Contoh: Testlog4.main(Uji Log4.java:10)
3.Atur tingkat keluaran log untuk Appender yang berbeda
Hal ini dapat dicapai dengan memodifikasi Ambang Batas Appender dalam konfigurasi, seperti contoh berikut:
Berkas konfigurasi:
log4j.rootLogger = debug,A,B,C
#Output ke konsol
log4j.appender.A = org.apache.log4j.ConsoleAppender
log4j.appender.A.Target = Sistem.keluar
log4j.appender.A.layout = org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern = %p %t %c - %m%n
# Keluaran ke file log
log4j.appender.B = org.apache.log4j.DailyRollingFileAppender
log4j.appender.B.File = log/log.log
log4j.appender.B.Append = benar
log4j.appender.B.Threshold = DEBUG # Output log di atas level EBUG
log4j.appender.B.layout = org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern = %p %t %c - %m%n
# Simpan informasi pengecualian ke file terpisah
log4j.appender.C = org.apache.log4j.DailyRollingFileAppender
log4j.appender.C.File = logs/error.log #Nama file log pengecualian
log4j.appender.C.Append = benar
log4j.appender.C.Threshold = ERROR #Hanya output log di atas level ERROR
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = %p %t %c - %m%n
contoh:
Copy kode kodenya sebagai berikut:
TestLog4j kelas publik
{
public static void main(String[] args)
{
PropertyConfigurator.configure("D:/Code/conf/log4j.properties");
Logger logger = Logger.getLogger(TestLog4j.class);
logger.debug("debug");
logger.error("kesalahan");
}
}