ใช่คุณควรจะ. การใช้ซุ้มการบันทึกเช่นSLF4Jช่วยให้คุณมีความยืดหยุ่นโดยไม่ทำให้ผู้ใช้ต้องกังวลกับกรอบการบันทึกเฉพาะ
ผู้เขียนส่วนประกอบและไลบรารีที่มีการกระจายอย่างกว้างขวางอาจใช้โค้ดกับอินเตอร์เฟส SLF4J เพื่อหลีกเลี่ยงการกำหนดเฟรมเวิร์กการบันทึกบนผู้ใช้ปลายทางของส่วนประกอบหรือไลบรารี ดังนั้นผู้ใช้ปลายทางอาจเลือกกรอบการบันทึกที่ต้องการในเวลาการปรับใช้โดยการแทรกการเชื่อม slf4j ที่สอดคล้องกันบน classpath ซึ่งอาจเปลี่ยนแปลงได้ในภายหลังโดยการแทนที่การโยงที่มีอยู่ด้วยอีกอันบนคลาสพา ธ และรีสตาร์ทแอปพลิเคชัน วิธีนี้ได้รับการพิสูจน์แล้วว่าง่ายและแข็งแกร่งมาก
นอกจากนี้หากผู้ใช้ของคุณไม่มีโถ SLF4J (จากคู่มือผู้ใช้ ):
ในฐานะของ SLF4J เวอร์ชัน 1.6.0 หากไม่พบการเชื่อมโยงบนคลาสพา ธ ดังนั้น slf4j-api จะเริ่มต้นที่การใช้งานที่ไม่ดำเนินการโดยยกเลิกการร้องขอบันทึกทั้งหมด
หากคุณกังวลเกี่ยวกับประสิทธิภาพของการบันทึกให้ตรวจสอบรายการคำถามที่พบบ่อย SLF4Jนี้ แนวคิดคือคุณจัดเตรียมพารามิเตอร์เพื่อบันทึกคำสั่งแทนการเพิ่มลงใน Inline String:
สองบรรทัดต่อไปนี้จะให้ผลลัพธ์ที่แน่นอนเหมือนกัน อย่างไรก็ตามรูปแบบที่สองจะมีประสิทธิภาพสูงกว่ารูปแบบแรกโดยปัจจัยอย่างน้อย 30 ในกรณีของคำสั่งการเข้าสู่ระบบที่ถูกปิดใช้งาน
logger.debug("The new entry is "+entry+".");
logger.debug("The new entry is {}.", entry);
SLF4J ยังเป็นส่วนควบคุมการบันทึกอีกหรือไม่
SLF4J มีแนวคิดคล้ายกันมากกับ JCL ด้วยเหตุนี้จึงสามารถคิดได้ว่าเป็นส่วนการทำไม้อีกอย่างหนึ่ง อย่างไรก็ตาม SLF4J นั้นง่ายกว่าในการออกแบบและมีความแข็งแกร่งกว่า สรุป SLF4J หลีกเลี่ยงปัญหาตัวโหลดคลาสที่ทำให้เกิดภัยพิบัติ [Jakarta Commons Logging]