1. Pendahuluan
Log4j adalah kerangka logging (API) yang andal, cepat dan fleksibel yang ditulis di Java, dirilis di bawah lisensi perangkat lunak Apache. Log4j telah diangkut ke bahasa seperti C, C ++, C#, Perl, Python dan Ruby.
LOG4J sangat dapat dikonfigurasi dan dapat dikonfigurasi melalui file eksternal saat runtime. Itu tergantung pada tingkat prioritas catatan dan menyediakan mekanisme untuk menunjukkan informasi logging ke banyak tujuan, seperti: basis data, file, konsol, log sistem UNIX, dll.
Ada tiga komponen utama dalam log4j:
Pencari: Bertanggung jawab untuk menangkap informasi catatan.
Appenders: Bertanggung jawab untuk menerbitkan informasi log ke berbagai tujuan pilihan.
Tata letak: Bertanggung jawab untuk memformat informasi log dari berbagai gaya.
Catatan: Artikel ini didasarkan pada log4j 2.x dan di atas.
2. Instalasi
LOG4J-CORE-XX.JAR
LOG4J-API-XX.JAR
LOG4J-WEB-XX.JAR (Referensi Diperlukan untuk Proyek Web)
3. Konfigurasi
Siapkan beberapa log untuk menambahkan referensi berikut:
impor org.apache.logging.log4j.logmanager; impor org.apache.logging.log4j.logger;
static Logger Logger = LogManager.getLogger (test.class.getName ());
Lokasi file konfigurasi terletak di: direktori root src. Bahkan jika tidak ada file konfigurasi, tidak akan ada kesalahan. Secara default, ini adalah output dalam bentuk konsol .
File konfigurasi log4j2 sangat berbeda dari log4 (versi 1.x sangat berbeda), dan hanya dapat menggunakan format .xml, .json atau .jsn. Konfigurasi spesifiknya adalah sebagai berikut ( ${web:rootDir} mewakili direktori root web):
<? XML Versi = "1.0" encoding = "UTF-8"?> <status konfigurasi = "error"> <!-Tentukan semua appenders-> <appenders> <!-konfigurasi konsol output ini-> <konsol nama = "target =" System_out "> <!-ini adalah format dari plat output-evlo evl oPM." %-5Level %kelas {36} %l %m- %msg %xex %n "/> </sonsole> <!-File akan mencetak semua informasi. Log ini akan secara otomatis dihapus setiap kali berjalan, yang ditentukan oleh atribut append, cocok untuk pengujian sementara-> <file name = "error" filename = "$ {web: rootdir} /logs/error.log" append = "false"> <! level = "error" onMatch = "terima" onmishatch = "deny"/> <polaLayout charset = "utf-8" pola = " %d {hh: mm: ss.sss} %-5Level %kelas {36} %l %m- %msg %xex %n"/</file> <!-ini akan dicetak. Setiap kali ukuran melebihi ukuran, log ukuran ini akan secara otomatis disimpan di folder yang dibuat pada bulan tahun dan dikompresi sebagai arsip-> <RollingFile name = "rollingfile" fileName = "$ {web: rootdir}/logs/history.log" FilePattern = "log/$$ {tanggal: yyyy-mm}/history- %d {mm-dd-yyyy}- %i.log.gz"> <polaLayout charset = "utf-8" pola = " %d {yyyy-mm-dd 'di' hh: mm: ss z} %-5 %msg%xex%n "/> <sizebasedtriggeringpolicy size =" 50mb "/> </lollingfile> </pencheing> <!-lalu tentukan logger. Appender hanya akan berlaku jika logger didefinisikan dan diperkenalkan. -> <toggers> <!-Buat logger root default-> <level root = "trace"> <appent-ref ref = "error"/> <appender-ref ref = "rollingfile"/> <appent-ref ref = "konsol"/> </root> </toggers> </konfigurasi>4. Proyek biasa dan proyek web
Untuk proyek biasa, konfigurasi di atas dapat digunakan secara normal setelah menyelesaikan konfigurasi di atas, dan untuk proyek web, file log tidak akan dihasilkan. Anda perlu menambahkan konfigurasi berikut di bawah node root dari <web-app> di web.xml:
<!-LOG4J2.X MULAI-> <dengarerer> <Distener-Class> org.apache.logging.log4j.web.log4jServletContextListener </engeaner-class> </engeaner> <nilter> <nilter-name> LOG4JServletFilter </filter-name> <nilter-class> org.apache.logging.log4j.web.log4jServletfilter </tiler-class> </tilter> <nilter-Mapping> <nilter-name> LOG4JServLETFILTER </TERFERTER-NAME> <RURL-PATER>/*</RURL-POLTER> </Filter-Mapping> <ter!
Meringkaskan
Di atas adalah metode menggunakan log4j untuk merekam log di java. Saya berharap konten artikel ini akan membantu untuk belajar atau bekerja semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.