Logger มาจากแพ็คเกจของ log4j หากคุณใช้ Logger.getLogger คุณต้องมีแพ็คเกจ jar log4j ด้วยวิธีนี้ คุณจะพึ่งพาได้เฉพาะ log4j เท่านั้น:
LogFactory มาจากแพ็คเกจการบันทึกทั่วไป หากคุณใช้ LogFactory.getLog คุณสามารถแทนที่ log4j ด้วยตัวบันทึกใดๆ ที่ใช้อินเทอร์เฟซการบันทึกทั่วไป และโปรแกรมจะไม่ได้รับผลกระทบ แพ็คเกจการบันทึกทั่วไปของ Apache เป็นอินเทอร์เฟซการบันทึกสากล คุณสามารถระบุระบบการบันทึกที่จะใช้ผ่านเลเยอร์กลางนี้ได้ เพิ่มความยืดหยุ่นของระบบ หากไม่มี log4j การบันทึกทั่วไปจะเลือกคลาสการใช้งานบันทึกอื่นๆ เพื่อให้แน่ใจว่าไม่จำเป็นต้องใช้ไฟล์บันทึก log4j ในโปรแกรม
เหตุผลในการเพิ่มความยืดหยุ่น:
1) ขั้นแรก ค้นหาไฟล์การกำหนดค่าของคุณ commons-logging.properties ภายใต้ classpath หากพบ ให้ใช้คลาสการใช้งาน Log ที่กำหนดไว้
2) หากไม่พบไฟล์ commons-logging.properties ให้ตรวจสอบว่าตัวแปรสภาพแวดล้อมระบบ org.apache.commons.logging.Log ถูกกำหนดไว้หรือไม่ หากพบ ให้ใช้คลาสการใช้งาน Log ที่กำหนดโดยมัน
3) มิฉะนั้น ให้ตรวจสอบว่ามีแพ็คเกจ Log4j ใน classpath หรือไม่ หากพบ Log4j จะถูกนำมาใช้เป็นคลาสการใช้งานบันทึกโดยอัตโนมัติ
4) มิฉะนั้น ให้ใช้คลาสการใช้งานบันทึกของ JDK ของตัวเอง (คลาสการใช้งานบันทึกจะพร้อมใช้งานหลังจาก JDK1.4 เท่านั้น)
5) มิฉะนั้น ให้ใช้คลาสการใช้งานบันทึกอย่างง่าย SimpleLog ที่จัดทำโดยการบันทึกทั่วไป
เพื่อให้การกำหนดค่าการบันทึกทั่วไปง่ายขึ้น โดยทั่วไปแล้วไฟล์การกำหนดค่าของการบันทึกทั่วไปจะไม่ถูกใช้ และไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อมของระบบที่เกี่ยวข้องกับการบันทึกทั่วไป แต่แพ็คเกจ Jar ของ Log4j จะถูกวางไว้ใน classpash ด้วยวิธีนี้ การรวมการบันทึกทั่วไปและ Log4j จึงเสร็จสมบูรณ์อย่างง่ายดาย
ตามคุณสมบัติที่แตกต่างกัน ข้อมูลบันทึกมักจะแบ่งออกเป็นระดับต่างๆ จากต่ำไปสูง: "Debug (DEBUG)" "ข้อมูล (INFO)" "คำเตือน (คำเตือน)" "ข้อผิดพลาด (ข้อผิดพลาด)" "ข้อผิดพลาดร้ายแรง (FATAL) ) ".
ขึ้นอยู่กับโหมดการดำเนินการบันทึกทั่วไป:
คัดลอกรหัสรหัส ดังต่อไปนี้:
แพ็คเกจองค์กร;
นำเข้า org.apache.commons.logging.Log;
นำเข้า org.apache.log4j.Logger;
การทดสอบคลาสสาธารณะขยายการสนับสนุนแท็ก {
บันทึกบันทึกคงที่สาธารณะ = LogFactory.getLog (Test.class);
การทดสอบโมฆะคงที่สาธารณะ ()
-
log.debug("111");
log.info("125");
log.warn("485");
log.error("ข้อผิดพลาด");
-
โมฆะสาธารณะคงหลัก (สตริง [] ก)
-
ทดสอบ.ทดสอบ();
-
-
วิธีดำเนินการตาม log4j
คัดลอกรหัสรหัส ดังต่อไปนี้:
นำเข้า org.apache.log4j.Logger;
นำเข้า org.apache.log4j.PropertyConfigurator;
TestLog4j คลาสสาธารณะ {
ตัวบันทึก Logger แบบคงที่ = Logger.getLogger (TestLog4j.class);
โมฆะคงสาธารณะ main (String args []) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("นี่คือ DEBUG บางส่วน");
logger.info("นี่คือข้อมูลบางส่วน");
logger.warn("นี่คือคำเตือน");
logger.error("นี่คือข้อผิดพลาดบางประการ");
logger.fatal("นี่คือข้อผิดพลาดบางส่วน");
-
-
การบันทึกทั่วไปจะจัดเตรียมเลเยอร์ของแพ็คเกจสำหรับ Log4j เท่านั้น (รวมถึงการใช้งาน LOG อื่นๆ ด้วย) เอาต์พุตบันทึกเฉพาะยังคงถูกถ่ายโอนภายในไปยัง Log4j เพื่อการประมวลผล และ log4j จะไปที่ไดเร็กทอรีคลาสตามค่าเริ่มต้นเพื่อค้นหา log4j.properties ไฟล์.