Kita tahu bahawa program akan menjana banyak maklumat semasa operasinya, seperti pukul berapa ia dijalankan dan apakah hasilnya? Untuk kami lebih memahami status berjalan program, kami boleh melihatnya melalui log Log boleh dikeluarkan pada konsol atau output ke fail tertentu Kami akan memperkenalkannya kepada anda secara terperinci dalam artikel berikut.
Log4J ialah projek sumber terbuka Syarikat Apache untuk pemprosesan log. Alamat muat turun:
https://logging.apache.org/log4j/2.x/download.html
Selepas muat turun selesai, Kita boleh mendapatkan pakej dengan nama akhiran jre.
untuk mencipta projek baharu, kemudian buat pakej lib baharu dalam projek dan letakkan pakej log4j.jar ke dalamnya.
Kemudian buat kelas dalam src:
Ikuti langkah dalam gambar:
Hanya tambah pakej jre di sini:
Apabila operasi di atas selesai Selepas itu, anda boleh mencipta objek dalam kelas:
Nota: Pakej Logger yang dipilih di sini adalah daripada apache, jadi pastikan anda tidak memilih yang salah di sini!
import org.apache.log4j.Logger; public class logTest { public static void main(String[] args) { //导入对象: Logger log = Logger.getLogger(logTest.class); log.error("用于记录error级别的信息"); //记录严重错误 log.warn("用于记录warn级别的信息"); //记录警告 log.info("用于记录info级别的信息"); //记录信息 log.debug("用于记录debug级别的信息"); //记录debug } }
Kemudian kita perlu mencipta fail konfigurasi:
Buat fail baharu, akhiran fail mestilah sifat
Kemudian buat fail baharu, nama boleh ditetapkan kepada: sumber, dan tukar format kepada gambar berikut:
Kemudian letakkan fail konfigurasi yang baru anda buat ke dalam ini Hanya di dalam fail:
Kami perlu mengkonfigurasi tiga maklumat paling penting berikut dalam log.properties:
Konfigurasikan anda Apakah tahap pengelogan yang akan direkodkan program ke dalam fail log
Tentukan destinasi output log, sama ada untuk merekodkan log ke konsol program (sementara? keadaan) atau di suatu tempat pada cakera. Dalam fail (storan berterusan)
menentukan format output output maklumat log ke konsol atau fail, atau dalam format apa maklumat log itu direkodkan.
Templat set adalah seperti berikut:
boleh disalin terus ke dalam log.properties:
Kita boleh mengabaikan maklumat konfigurasi ini dahulu dan lengkapkan konfigurasi di atas dahulu. Jika ini berlaku, bermakna ia betul. Mari kita tulis semula sekeping kod untuk melihat fungsi log ini:# 1. Tetapkan tahap output info, Maklumat dan tahap yang lebih tinggi boleh direkodkan ke fail log, tetapi tahap yang lebih rendah seperti nyahpepijat tidak akan direkodkan dalam fail log
# stdout ialah destinasi rekod log yang ditetapkan (nama boleh dipilih secara santai) Untuk sepadan)
log4j.rootLogger=info,stdout#2. Tetapkan destinasi pengelogan (rekod ConsoleAppender ke konsol)
#3. Tetapkan format atau gaya rekod (System.err ialah gaya merah, System.out ialah gaya hitam)
log4j.appender.stdout=org.apache 🎜>log4j.appender.stdout.Target=System.err
# Tetapkan rekod format
#PatternLayout dibentangkan mengikut peraturan tersuai kami (%d %l %m %n ialah reka letak peraturan yang ditentukan)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %l %m %n
import org.apache.log4j.Logger; import java.util.Scanner; public class test2 { public static void main(String[] args) { Logger logger = Logger.getLogger(test2.class); Scanner input = new Scanner(System.in); try{ System.out.println("请输入除数:"); int a = input.nextInt(); logger.debug("bug:输入除数"+a); logger.info("info:输入除数"+a); System.out.println("请输入被除数:"); int b = input.nextInt(); logger.debug("bug:输入除数"+b); logger.info("info:输入除数"+b); int c = a/b; //把结果记录到日志文件中 logger.debug("bug:结果"+c); logger.info("info:结果"+c); System.out.println("结果是:"+c); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); }finally { System.out.println("程序结束!!"); } } }
Maklumat log tidak dipaparkan pada konsol kerana ia telah ditetapkan kepada output kepada fail yang ditentukan: Mengikut laluan yang ditetapkan, kita boleh melihat:
seperti ini Maklumat masa, maklumat nama program, dan maklumat tentang apa yang berlaku dalam barisan program semuanya direkodkan. Sudah tentu, terdapat banyak lagi format output, anda boleh menyediakannya mengikut keperluan!
Itu sahaja yang dikatakan oleh Xiao Ying tentang log Log4j Selepas melengkapkan langkah-langkah ini, rekod log yang mudah dilengkapkan Tahap output log berikut juga perlu diperhatikan.
Tahap output log:
1.mati: tahap tertinggi, digunakan untuk mematikan semua pembalakan
2.fatal menunjukkan bahawa setiap masa ralat yang serius akan menyebabkan aplikasi menjadi Keluar dari program
3.ralat bermakna walaupun peristiwa ralat dihantar, ia masih tidak menjejaskan operasi sistem
4.amaran menunjukkan bahawa situasi ralat yang berpotensi akan berlaku
5.info Umum pengguna merekodkan proses berjalan program
6.debug biasanya digunakan untuk menyahpepijat rekod maklumat
7.semua adalah tahap paling rendah, digunakan untuk menghidupkan semua rekod log
Atas ialah kandungan terperinci Cara menggunakan log Log4j dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!