1. File konfigurasi
Format dasar file konfigurasi Log4J adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
#Konfigurasi Logger root
log4j.rootLogger = [ tingkat ] , appenderName1 , appenderName2 , …
#Konfigurasi Appender tujuan keluaran informasi log
log4j.appender.appenderName = sepenuhnya.memenuhi syarat.nama.of.appender.class
log4j.appender.appenderName.option1 = nilai1
…
log4j.appender.appenderName.optionN = nilaiN
#Konfigurasi format (tata letak) informasi log
log4j.appender.appenderName.layout = sepenuhnya.memenuhi syarat.nama.of.layout.class
log4j.appender.appenderName.layout.option1 = nilai1
…
log4j.appender.appenderName.layout.optionN = nilaiN
Jika [level] adalah level keluaran log, total ada 5 level:
Copy kode kodenya sebagai berikut:
FATAL 0
KESALAHAN 3
PERINGATAN 4
INFORMASI 6
DEBUG 7
Appender adalah tujuan keluaran log. Appender yang disediakan oleh Log4j meliputi:
Copy kode kodenya sebagai berikut:
org.apache.log4j.ConsoleAppender(konsol),
org.apache.log4j.FileAppender(file),
org.apache.log4j.DailyRollingFileAppender (menghasilkan file log setiap hari),
org.apache.log4j.RollingFileAppender (menghasilkan file baru ketika ukuran file mencapai ukuran yang ditentukan),
org.apache.log4j.WriterAppender (mengirimkan informasi log dalam format streaming ke tempat tertentu)
Tata Letak: Format keluaran log. Tata letak yang disediakan oleh Log4j adalah 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.)
Parameter pencetakan: Log4J menggunakan format pencetakan yang mirip dengan fungsi printf dalam bahasa C untuk memformat informasi log, sebagai berikut:
Copy kode kodenya sebagai berikut:
%m Keluarkan pesan yang ditentukan dalam kode %p Prioritas keluaran, yaitu DEBUG, INFO, WARN, ERROR, FATAL
%r Keluarkan jumlah milidetik yang dibutuhkan dari startup aplikasi hingga mengeluarkan informasi log %c Keluarkan kategori yang termasuk dalam kategori tersebut, biasanya nama lengkap kelas %t Keluarkan nama thread yang menghasilkan log event %n Keluaran karakter carriage return dan line feed, Platform Windows adalah "/r/n", platform Unix adalah "/n"
%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(TestLog4.java: 10)
2. Inisialisasi Logger dalam kode: 1) Panggil metode BasicConfigurator.configure() dalam program: tambahkan ConsoleAppender ke perekam root, atur format output ke "%-4r [%t] %-5p %c %x - %m%n" melalui PatternLayout , dan juga Level default untuk logger yang di-root adalah Level.DEBUG.
2) Konfigurasi ditempatkan di file, nama file diteruskan melalui parameter baris perintah, dan diuraikan serta dikonfigurasi melalui PropertyConfigurator.configure(args[x]);
3) Konfigurasi ditempatkan dalam file, nama file dan informasi lainnya diteruskan melalui variabel lingkungan, dan proses inisialisasi default log4j digunakan untuk menguraikan dan mengkonfigurasi;
4) Konfigurasi ditempatkan dalam file, nama file dan informasi lainnya dilewatkan melalui konfigurasi server aplikasi, dan servlet khusus digunakan untuk menyelesaikan konfigurasi.
3. Atur tingkat keluaran log untuk Appender yang berbeda:
Saat men-debug sistem, kita sering hanya memperhatikan keluaran log tingkat pengecualian, tetapi biasanya semua tingkat keluaran ditempatkan dalam satu file. Jika tingkat keluaran log adalah BUG! ? Kalau begitu, carilah secara perlahan.
Saat ini, kami mungkin berpikir akan lebih bagus jika kami dapat menampilkan informasi pengecualian ke file secara terpisah. Tentunya Log4j sudah menyediakan fungsi seperti itu. Kita hanya perlu memodifikasi Appender's Threshold pada konfigurasi untuk mencapainya, seperti contoh berikut:
[file konfigurasi]
Copy kode kodenya sebagai berikut:
### atur level log ###
log4j.rootLogger = debug, stdout, D, E
###Keluaran ke konsol###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = Sistem.keluar
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### Keluaran ke berkas log###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = log/log.log
log4j.appender.D.Append = benar
log4j.appender.D.Threshold = DEBUG ## Output log di atas level DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### Simpan informasi pengecualian ke file terpisah###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## Nama file log pengecualian
log4j.appender.D.Append = benar
log4j.appender.D.Threshold = ERROR ## Hanya output log di atas level ERROR!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
[Digunakan dalam kode]
kelas publik TestLog4j {
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" );
}
}
Jalankan dan lihat apakah informasi pengecualian disimpan dalam file terpisah error.log