1. Memahami
SLF4J (fasad logging sederhana untuk Java) mewakili fasad log sederhana yang disediakan untuk Java, dan poin yang lebih mendasar adalah antarmuka. Dengan mengimpor informasi dalam program ke dalam sistem log dan merekamnya, memisahkan antara program dan sistem log dapat dicapai.
Antarmuka log fasad itu sendiri biasanya tidak memiliki kemampuan output log aktual. Masih perlu memanggil API kerangka log spesifik di bagian bawah, yaitu, sebenarnya perlu digunakan dalam kombinasi dengan kerangka log spesifik. Karena ada banyak kerangka log spesifik dan sebagian besar tidak kompatibel satu sama lain, jika antarmuka log fasad dikombinasikan dengan kerangka log apa pun, itu mungkin memerlukan jembatan yang sesuai, seperti kombinasi antara JDBC dan berbagai database yang berbeda memerlukan driver JDBC yang sesuai.
1. Log fasad (fasad)
1.slf4j (disarankan)
2. Commons-logging
2. Log spesifik koneksi slf4j
Saat menghubungkan SLF4J dan bingkai log lainnya, diperlukan桥接器di tengah. Beberapa kerangka kerja logging sendiri menggunakan API SLF4J, sehingga mereka tidak perlu menggunakan jembatan.
Logback adalah versi Log4J yang lebih baik, dan API SLF4J secara langsung digunakan secara internal, sehingga tidak ada jembatan. (Logback dan SLF4J dikatakan berasal dari penulis yang sama)
1.slf4j-api.jar> slf4j-log4j12.jar jembatan> log4j.jar
2.slf4j-api.jar> logback-core.jar, logback-classic.jar
3.slf4j-api.jar> slf4j-simple.jar
4.slf4j-api.jar> log4j-slf4j-impl-2.8.2.jar> org.apache.logging.log4j: log4j-api: 2.8.2, org.apache.logging.log4j: log4j-core: 2.8.2, org.apache.logging.log4j: log4j-core: 2.8.2, org.apache.apache.logging.log4j: log4j-core: 2.8.2, org.apache.apache.apache log4j2)
2. Gunakan SLF4J+LOG4J2
log4j2.xml
Masukkan ke direktori sumber daya
<? Xml Version = "1.0" encoding = "UTF-8"?> <!-6 tingkat prioritas adalah: off, fatal, kesalahan, peringatkan, info, debug, jejak, semua. Jika prioritas diatur untuk memperingatkan, maka empat tingkat log, off, fatal, kesalahan, dan peringatan, dapat menghasilkan secara normal untuk mati. Ini berarti bahwa log Log4J2 tidak direkam. -> <!-Status: Digunakan untuk menentukan tingkat log pencetakan Log4j itu sendiri. MonitorInterval: Tentukan waktu interval pemantauan untuk log4j secara otomatis dikonfigurasi ulang-> <status konfigurasi = "info" monitorInterval = "30"> <!-Atur sendiri properti, dan kemudian aksesnya melalui $ {}-> <Properties> Properties = "LOG_HOME"> $ {WEB: ROOTDIR}/Log Properti </Log. konsol, tentukan level format output dan filter sebagai info-> <konsol nama = "konsol" target = "system_out"> <!-ThresholdFilter menentukan tingkat terendah dari output pesan log-> <thresholdFilter level = "semua" onmatch = "oNMISMATCH =" DENY "/<Pola Pola-. %Kelas {36} %l %m- %msg %xex %n "/> </console> <!-appender 2. output ke file saved gulir, kondisi yang memicu file log simpan adalah bahwa file log lebih besar dari 3kb, dan hanya 10 log yang disimpan-> <file name =" alllog "filename =" $ "$ {$ {home {home. level = "semua" onMatch = "terima" onmismatch = "deny"/> <polalayout charset = "utf-8" pola = " %d {yyyyy.mm.dd 'di' hh: mm: ss z} %-5 level %class {36} %l %m- %msg %xex %n" Kondisi yang memicu file log save adalah bahwa file log lebih besar dari 3kb, dan hanya 10 log terbaru yang disimpan-> <rollingfile name = "debuglog" filename = "$ {log_home} /debug.log" filepattern = "$ {log.path} /debug-20 miring" $ {log onMishatch = "DENY"/> <POLTERLAYOUT charset = "UTF-8" Pattern = "[%-5Level] [%d {yyyy-mm-dd hh: mm: ss}] [%f:%l]-%m%n"/> <sizebasedtrigheringpolice ukuran polis = "3kb" Melampaui ukuran dalam sizeBasedTriggeringPolicy-> <DefaultrolloverStrategy max = "10"/> </dollingfile> <!-Appender 4. Ekspor ke file yang disimpan gulir, kondisi yang memicu file log simpan adalah acara log pertama per menit. ERROR logs are generated by minutes --> <RollingFile name="errorLog" fileName="${LOG_HOME}/error.log" filePattern="${log.path}/error-%d{yyyy-MM-dd_HH-mm}.log"> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PolaLayout charset = "utf-8" pola = "[%-5Level] [%d {yyyyy-mm-dd hh: mm: ss}] [%c:%f:%l]-%m%n"/> <timebasedtriggerpolicy/> </rollingfile> <Rollingfile name = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile = "Rollingfile =" Rollingfile "Rollingfile" FileName = "$ {log_home} /rar.log" filepattern = "$ {log_home}/$$ {date: yyyy-mm}/$ {file_name}-%d {mm-dd-yyyy}-%i.log.gz"> <Patternlayout charset = "{BOBLOD" {{POLA-MM-mm-mm HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <!--The maximum log file value is compressed the next day --> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy/> </Policies> </RollingFile> </appenders> <!--root default loading--> <Loggers> <level root = "info"> <appent-ref ref = "konsol"/> <!-<appent-ref ref = "alllog"/>-> <!-<appent-ref ref = "debuglog"/>-> <applender-ref ref = "errorLog"/<!-<appling-ref ref = "rollingfile"/orrorLog "/<!-<appent-ref ref =" rollingfile/orrorLog "/<!Logtest.java
impor org.slf4j.logger; impor org.slf4j.loggerFactory; LogTest kelas publik {Public Final Logger Logger = LoggerFactory.getLogger (getClass ()); public static void main (string [] args) {log.trace ("trace"); log.debug ("debug"); log.warn ("warn"); log.info ("info"); log.error ("error"); }} Artikel referensi: https://www.vevb.com/article/143486.htm
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.