1. เข้าใจ
SLF4J (ด้านหน้าการบันทึกอย่างง่ายสำหรับ Java) หมายถึงซองบันทึกอย่างง่ายที่จัดเตรียมไว้สำหรับ Java และจุดพื้นฐานเพิ่มเติมคืออินเทอร์เฟซ โดยการนำเข้าข้อมูลในโปรแกรมลงในระบบบันทึกและบันทึกการแยกระหว่างโปรแกรมและระบบบันทึกสามารถทำได้
อินเทอร์เฟซ Log Facade เองมักจะไม่มีความสามารถในการบันทึกจริง มันยังคงต้องเรียก Framework API ที่เฉพาะเจาะจงที่ด้านล่างนั่นคือจริง ๆ แล้วมันจำเป็นต้องใช้ร่วมกับเฟรมเวิร์กบันทึกเฉพาะ เนื่องจากมีเฟรมเวิร์กบันทึกเฉพาะจำนวนมากและส่วนใหญ่เข้ากันไม่ได้ซึ่งกันและกันหากอินเทอร์เฟซซุ้มล็อกถูกรวมเข้ากับเฟรมเวิร์กบันทึกใด ๆ จึงอาจต้องใช้บริดจ์ที่สอดคล้องกันเช่นเดียวกับการรวมกันระหว่าง JDBC และฐานข้อมูลต่าง ๆ ที่แตกต่างกันต้องใช้ไดรเวอร์ JDBC ที่สอดคล้องกัน
1. ซองบันทึก (ซุ้ม)
1.SLF4J (แนะนำ)
2. การสื่อสารแบบคอมมิวนิสต์
2. บันทึกการเชื่อมต่อ SLF4J บันทึกเฉพาะ
เมื่อเชื่อมต่อ SLF4J และเฟรมบันทึกอื่น ๆ จำเป็นต้องมี桥接器อยู่ตรงกลาง เฟรมเวิร์กการบันทึกบางตัวใช้ SLF4J API ดังนั้นพวกเขาจึงไม่จำเป็นต้องใช้สะพาน
Logback เป็นเวอร์ชันที่ได้รับการปรับปรุงของ Log4J และ SLF4J API ถูกใช้โดยตรงภายในดังนั้นจึงไม่มีสะพาน (Logback และ SLF4J ถูกกล่าวว่ามาจากผู้เขียนคนเดียวกัน)
1.SLF4J-API.JAR> SLF4J-LOG4J12.JAR BRIDGE> 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 log4j2)
2. ใช้ slf4j+log4j2
log4j2.xml
วางไว้ในไดเรกทอรีทรัพยากร
<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <!-ระดับความสำคัญ 6 ระดับคือ: ปิด, ร้ายแรง, ข้อผิดพลาด, เตือน, ข้อมูล, การดีบัก, การติดตาม, ทั้งหมด หากมีการตั้งค่าลำดับความสำคัญเป็นคำเตือนการบันทึกสี่ระดับปิดการเสียชีวิตข้อผิดพลาดและเตือนสามารถส่งออกตามปกติ ซึ่งหมายความว่าไม่ได้บันทึกบันทึกของ log4j2 -> <!-สถานะ: ใช้เพื่อระบุระดับบันทึกการพิมพ์ของ log4j เอง MonitorInterval: ระบุช่วงเวลาการตรวจสอบสำหรับ log4j reconfigured โดยอัตโนมัติ-> <สถานะการกำหนดค่า = "info" monitorInterval = "30"> <!-ตั้งค่าคุณสมบัติด้วยตัวเองแล้วเข้าถึงพวกเขาผ่าน $ {}-> <properties> <property name = "log_home"> $ { คอนโซลคอนโซลระบุรูปแบบเอาต์พุตและระดับตัวกรองเป็นข้อมูล-> <console name = "console" target = "system_out"> <!-thresholdFilter ระบุระดับต่ำสุดของข้อความบันทึก-> <thresholdFilter ระดับ = "ทั้งหมด" onMatch = "ยอมรับ" onMismatch = "deny"/> %-5Level %คลาส {36} %l %m- %msg %xex %n "/> </console> <!-appender 2. เอาต์พุตไปยังไฟล์ที่บันทึกไว้ในสกรอลล์, เงื่อนไขที่ทริกเกอร์ไฟล์บันทึกบันทึกคือไฟล์บันทึกมากกว่า 3KB <thresholdFilter level = "all" onMatch = "ยอมรับ" onMismatch = "deny"/> <patternlayout charset = "utf-8" รูปแบบ = " %d {yyyyy.mm.dd 'ที่' hh: mm: ss Z} %-5LEVEL ไฟล์ที่บันทึกไว้ Scroll เงื่อนไขที่ทริกเกอร์ไฟล์บันทึกบันทึกคือไฟล์บันทึกมากกว่า 3KB และบันทึก 10 รายการล่าสุดเท่านั้นที่บันทึกไว้-> <rollingFile name = "debuglog" filename = "$ {log_home} /debug.log.log" filepattern = "$ {log.path onMatch = "ยอมรับ" onmismatch = "deny"/> <patternlayout charset = "utf-8" pattern = "[%-5level] [%d {yyyy-mm-dd hh: mm: ss}] [%f:%l]-%m%n"/> สามารถ จำกัด คลังเก็บสูงสุดหลังจากขนาดเกินขนาดใน sizebasedtriggeringpolicy-> <defaultrolloverstrategy max = "10"/> </rollingfile> <!-Appender 4. ส่งออกไปยังไฟล์ที่บันทึกไว้ บันทึกข้อผิดพลาดถูกสร้างขึ้นโดยนาที-> <rollingfile name = "errorlog" filename = "$ {log_home} /error.log" filepattern = "$ {log.path}/ข้อผิดพลาด-%d {yyyy-mm-dd_hh-mm} .log" <patternLayout charset = "utf-8" pattern = "[%-5level] [%d {yyyyy-mm-dd hh: mm: ss}] [%c:%f:%l]-%m%n"/> filename = "$ {log_home} /rar.log" filepattern = "$ {log_home}/$$ {วันที่: yyyy-mm}/$ {file_name}-%d {mm-dd-yyyy}-%i.log.gz" HH: MM: SS Z} %-5Level %คลาส {36} %l %m- %msg %xex %n "/> <!-ค่าไฟล์บันทึกสูงสุดถูกบีบอัดในวันถัดไป-> <นโยบาย> <timebasedtriggeringPolicy/> <root level = "info"> <appender-ref ref = "console"/> <!-<appender-ref ref = "alllog"/>-> <!-<Appender-ref ref = "debuglog"/>-> <Appender-ref ref = "errorlog"/> <!logtest.java
นำเข้า org.slf4j.logger; นำเข้า org.slf4j.loggerFactory; คลาสสาธารณะ logtest {สาธารณะ logger สุดท้าย logger = loggerFactory.getLogger (getClass ()); โมฆะคงที่สาธารณะหลัก (สตริง [] args) {log.trace ("trace"); log.debug ("debug"); log.warn ("เตือน"); log.info ("ข้อมูล"); log.error ("ข้อผิดพลาด"); - บทความอ้างอิง: https://www.vevb.com/article/143486.htm
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น