บทความนี้ส่วนใหญ่แนะนำคำอธิบายโดยละเอียดของบันทึกรวมกับ log4j และ SLF4J ภายใต้กรอบ SSM และแบ่งปันกับคุณ รายละเอียดมีดังนี้:
ก่อนอื่นเพิ่มแพ็คเกจ jar log4j และ slf4j
<!-การประมวลผลบันทึก <!-แพ็คเกจบันทึก SLF4J-> <cendency> <sdeperency> <sdeperency> <sdeperency> <roupId> org.slf4j </groupId> <ratifactId> slf4j-api </artifactid> <cersion> 1.7.21 </Sere> </การพึ่งพาอาศัย <ArtIfactId> SLF4J-LOG4J12 </artifactId> <cersion> 1.7.21 </เวอร์ชัน> </การพึ่งพา> <!-แนะนำแพ็คเกจบันทึก-> <predency> <roupId> log4j </groupId>-> <ratifactId>
โรงงานบันทึกในตัวของ MyBatis ให้ฟังก์ชั่นการบันทึก การใช้งานบันทึกเฉพาะมีเครื่องมือต่อไปนี้:
1. เครื่องมือการใช้งานบันทึกใดที่จะเลือกโดยโรงงานบันทึกในตัวของ MyBatis มันจะใช้อันแรกที่พบ (ค้นหาในลำดับที่ระบุไว้ข้างต้น) หากไม่พบพวกเขาฟังก์ชันการบันทึกจะถูกปิดใช้งาน
แอปพลิเคชันเซิร์ฟเวอร์จำนวนมากมีการบันทึกคอมมอนส์เช่น Tomcat และ Webshpere ดังนั้น Mybatis จะใช้เป็นบันทึกเฉพาะ มันสำคัญมากที่จะต้องจำสิ่งนี้ ซึ่งจะหมายความว่าในสภาพแวดล้อมเช่น WebSphere - WebSphere ให้การใช้งานการบันทึกแบบส่วนตัวและการกำหนดค่า log4j ของคุณจะถูกละเว้น วิธีการนี้น่าเศร้าอย่างหลีกเลี่ยงไม่ได้ mybatis จะเพิกเฉยต่อการกำหนดค่าของคุณได้อย่างไร? ในความเป็นจริงเนื่องจากมีการบันทึกคอมมอนส์อยู่แล้ว log4j ถูกเพิกเฉยตามธรรมชาติตามลำดับความสำคัญ! อย่างไรก็ตามหากแอปพลิเคชันของคุณถูกปรับใช้ในสภาพแวดล้อมที่มีการบันทึกคอมมอนส์และคุณต้องการใช้เฟรมเวิร์กการบันทึกอื่น ๆ คุณสามารถเลือกการใช้งานบันทึกที่แตกต่างกันโดยการเพิ่มการตั้งค่า (กำหนดค่า) ในไฟล์กำหนดค่า mybatis mybatis-config.xml
<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! การกำหนดค่า Doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd <การตั้งค่า> <การตั้งค่าชื่อ = "logimpl" value = "slf4j"/> </การตั้งค่า> <!-ไฟล์นี้อาจเป็นไฟล์ที่ว่างเปล่า แต่ต้องมีไฟล์นี้-> <!-ตำแหน่งของปลั๊กอินในไฟล์การกำหนดค่าจะต้องตรงตามข้อกำหนด DatabaseidProvider? mappers? -> <ปลั๊กอิน> <!-com.github.pageHelper เป็นชื่อแพ็คเกจที่คลาส pagehelper ตั้งอยู่-> <plugin interceptor = "com.github.pagehelper.pageHelper"> <!-พารามิเตอร์นี้สามารถตั้งค่าได้โดยไม่ต้องตั้งค่าในเวอร์ชัน 4.0.0 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- เป็นหมายเลขหน้า pagenum-> <!-เอฟเฟกต์เหมือนกับ pagenum ใน startpage-> <property name = "OffsetAspagenum" value = "true" /> <!-พารามิเตอร์นี้เริ่มต้นเป็นเท็จ-> <! pagesize = 0 หรือ rowbounds.limit = 0 ผลลัพธ์ทั้งหมดจะถูกสืบค้น-> <!-(เทียบเท่ากับความจริงที่ว่าการสืบค้นหน้าไม่ถูกดำเนินการ แต่ผลลัพธ์ยังคงเป็นประเภทหน้า)-> <ชื่อคุณสมบัติ = "pagesizezero" ค่า = "จริง" /> <! สอบถามหน้าแรกถ้า pagenum> หน้าจะสืบค้นหน้าสุดท้าย-> <!-เมื่อการหาเหตุผลเข้าข้างตนเองถูกปิดใช้งานถ้า pagenum <1 หรือ pagenum> หน้าจะส่งคืนข้อมูลที่ว่างเปล่า-> <!-<property name = "Value" Value = "false" />-> <!-เวอร์ชัน 3.5.0 การแม็พเพื่อรับค่าจากแผนที่หรือ servletrequest-> <!-คุณสามารถกำหนดค่า pagenum, pagesize, count, pageizezero, สมเหตุสมผล, orderby และใช้ค่าเริ่มต้นสำหรับการแมป-> <!-ถ้าคุณไม่เข้าใจความหมายนี้ />-> <!-สนับสนุนพารามิเตอร์การผ่านเพจผ่านพารามิเตอร์อินเตอร์เฟสแม็ปเปอร์-> <ชื่อคุณสมบัติ = "supportMethodSarguments" value = "false"/> <!-มักจะส่งคืนประเภท pageinfo เสมอตรวจสอบว่าประเภทการส่งคืนนั้นเป็นหน้าเว็บหรือไม่
ค่าตัวเลือกของ logimpl คือ: slf4j, log4j, log4j2, jdk_logging, commons_logging, stdout_logging, no_logging หรือชื่อคลาสที่ผ่านการรับรองของคลาสที่ใช้อินเตอร์เฟส org.apache.ibatis.logging.log (คุณสามารถอ้างถึงการใช้งาน org.apache.ibatis.logging.slf4j.slf4jimpl.java)
คุณเรียกวิธีการตามต้องการ:
org.apache.ibatis.logging.logfactory.useslf4jlogging (); org.apache.ibatis.logging.logfactory.uselog4jlogging (); org.apache.ibatis.logging.logfactory.usejdklogging (); org.apache.ibatis.logging.logfactory.usejdklogging (); org.apache.ibatis.logging.logfactory.usecommonslogging (); org.apache.ibatis.logging.logfactory.usestdoutlogging ();
หากคุณจำเป็นต้องโทรหาวิธีใดวิธีหนึ่งข้างต้นให้เรียกใช้ก่อนวิธีการ mybatis อื่น ๆ ทั้งหมด นอกจากนี้ยังมีความหมายเท่านั้นที่จะเรียกวิธีการที่เกี่ยวข้องภายใต้หลักฐานที่มีอยู่ในการใช้งานบันทึกที่สอดคล้องกันมิฉะนั้น mybatis จะถูกละเว้น หาก Log4j ไม่มีอยู่ในสภาพแวดล้อมของคุณ แต่คุณเรียกวิธีการที่เกี่ยวข้อง MyBatis จะเพิกเฉยต่อการโทรนี้และค้นหาการใช้งานบันทึกในลำดับการค้นหาเริ่มต้น
2. กำหนดค่า web.xml
<!-โหลด log4j-> <denterce-param> <param-name> log4jconfiglocation </param-name> <param-value> classpath: log4j.properties </param-value> </stronte-param>
3. เพียงแค่สร้างไฟล์ชื่อ log4j.properties ในแอปพลิเคชัน classpath เนื้อหาเฉพาะของไฟล์มีดังนี้:
log4j.rootlogger = ข้อมูล, คอนโซล, dailyfile# todo โปรดเพิ่มเมื่อเผยแพร่ไปยัง Alibaba Cloud นอกจากนี้คอนโซลไม่ได้ส่งออก (เฉพาะคำเตือนหรือข้อมูลข้อผิดพลาด)#ข้อมูล, คอนโซล, dailyFileLog4j.logger.org.mybatis = debuglog4j.logger.com.itzixi.mapper = debuglog4j.appender.console = org.apache.log4j.consoleapenderlog4j.appender.console.encoding = utf-8log4j.appender.console.layout = org.apache.log4j.patternlayoutlog4j.appender.console.layout.conversionPattern =%-d {yyyy-mm-dd HH: MM: SS, SS} [%T] [%L] - [%P]%M%N#MyBatis แสดง SQL คำสั่งบันทึกการกำหนดค่า#log4j.logger.org.mybatis = debug#log4j.logger.com.itzixi.mapper = debug# log4j.appender.dailyfile = org.apache.log4j.dailyrollingFilePenderLog4j.appender.dailyfile.encoding = UTF-8Log4j.appender.dailyFile.threshold = ข้อมูล# todo ที่อยู่บันทึกท้องถิ่น #log4j.appender.dailyfile.file = c: /logs/itzixi-web/log.log4jlog4j.appender.dailyfile.file=/itzixi-disk1/logs/itzixi-web/log.log4jlog4j.appender .DatePattern = '.' yyyy-mm-ddlog4j.appender.dailyfile.layout = org.apache.log4j.patternlayoutlog4j.appender.dailyfile.layout.conversionPattern =% HH: MM: SS, SS} [%T] [%L] - [%P]%M%N ## แสดงคำสั่ง SQL ส่วน#log4j.logger.com.ibatis = debug#log4j.logger.com.ibatis.common.jdbc.simpledataSource = debug#log4j.logger.com.ibatis.common.jdbc.scriptrunner = debug#log4j.logger.com .Ibatis.SQLMAP.ENGINE.IMPL.SQLMAPCLIENTDELEGATE = DEBUG#log4j.logger.java.sql.connection = debug#log4j.logger.java.sql.statement = debug#log4j.logger.java.sql.ดังที่แสดงในรูปเมื่อเราป้อนการดีบักคำสั่ง SQL จะถูกพิมพ์
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น