ยังคงคุ้มค่าที่จะเพิ่มไลบรารี log4j ลงในโปรเจ็กต์ Java 5 เพียงเพื่อเข้าสู่ระบบสมมติว่ามีข้อยกเว้นบางประการสำหรับไฟล์ที่มีการตั้งค่าโรลโอเวอร์ที่ดี หรือสิ่งอำนวยความสะดวก util.logging มาตรฐานจะทำงานได้เช่นกัน?
คุณคิดอย่างไร?
ยังคงคุ้มค่าที่จะเพิ่มไลบรารี log4j ลงในโปรเจ็กต์ Java 5 เพียงเพื่อเข้าสู่ระบบสมมติว่ามีข้อยกเว้นบางประการสำหรับไฟล์ที่มีการตั้งค่าโรลโอเวอร์ที่ดี หรือสิ่งอำนวยความสะดวก util.logging มาตรฐานจะทำงานได้เช่นกัน?
คุณคิดอย่างไร?
คำตอบ:
ฉันว่าคุณคงสบายดีกับ util.logging สำหรับความต้องการที่คุณอธิบาย
สำหรับโครงสร้างการตัดสินใจที่ดีโปรดดูที่Log4j vs java.util.logging
คำถามที่หนึ่ง: คุณคาดว่าจะต้องการตัวจัดการที่ชาญฉลาดที่ Log4j มีที่ JUL ไม่มีเช่น SMTPHandler, NTEventLogHandler หรือ FileHandlers ที่สะดวกมาก ๆ หรือไม่?
คำถามที่สอง: คุณคิดว่าตัวเองต้องการเปลี่ยนรูปแบบของเอาต์พุตการบันทึกบ่อยๆหรือไม่? คุณต้องการวิธีที่ง่ายและยืดหยุ่นในการดำเนินการหรือไม่? กล่าวอีกนัยหนึ่งคุณต้องการ PatternLayout ของ Log4j หรือไม่?
คำถามที่สาม: คุณคาดการณ์ถึงความต้องการที่ชัดเจนสำหรับความสามารถในการเปลี่ยนแปลงการกำหนดค่าการบันทึกที่ซับซ้อนในแอปพลิเคชันของคุณหลังจากที่รวบรวมและปรับใช้ในสภาพแวดล้อมการผลิต การกำหนดค่าของคุณฟังดูเหมือน "ข้อความที่รุนแรงจากคลาสนี้ถูกส่งทางอีเมลไปยังผู้สนับสนุนข้อความที่รุนแรงจากกลุ่มย่อยของคลาสจะถูกบันทึกไปยัง syslog deamon บนเซิร์ฟเวอร์ของเราข้อความเตือนจากคลาสย่อยอื่นจะถูกบันทึก ไปยังไฟล์บนไดรฟ์เครือข่าย A และจากนั้นข้อความทั้งหมดจากทุกที่จะเข้าสู่ไฟล์บนไดรฟ์เครือข่าย B "? และคุณเห็นว่าตัวเองปรับแต่งทุกสองสามวันหรือไม่?
หากคุณสามารถตอบใช่สำหรับคำถามข้างต้นให้ไปที่ Log4j หากคุณตอบว่าไม่แน่นอนสำหรับทุกคน JUL จะเพียงพอและรวมอยู่ใน SDK แล้วอย่างสะดวก
ที่กล่าวว่าเกือบทุกโครงการในทุกวันนี้ดูเหมือนจะจบลงรวมถึง log4j หากเป็นเพียงเพราะห้องสมุดอื่นใช้
Log4j vs java.util.logging
ลิงก์ไม่ทำงานอีกต่อไป
ขอแนะนำให้คุณใช้Simple Logging Facade สำหรับ Java (SLF4J) สนับสนุนผู้ให้บริการที่แตกต่างกันซึ่งรวมถึง Log4J และสามารถใช้แทน Apache Commons Logging ได้
Log4j มีมานานแล้วและทำงานได้ดีมาก ฉันไม่มีการศึกษาทางวิทยาศาสตร์ที่จะสนับสนุน แต่จากสิ่งที่ฉันเห็นในลูกค้าจำนวนมากมันเป็นกรอบการบันทึกที่ฉันเห็นว่าใช้มากกว่าที่อื่น ๆ มีมานานแล้วและไม่ได้ถูกแทนที่ด้วย Next Big Logging Framework ซึ่งบอกอะไรบางอย่าง
การตั้งค่านั้นง่ายมากและง่ายต่อการเรียนรู้ภาคผนวกพื้นฐาน (เอาต์พุต) มีตัวผนวกโฮสต์ทั้งหมดที่พร้อมใช้งาน ได้แก่ :
บวกอื่น ๆ การเขียน appender ของคุณเองก็ไม่ใช่เรื่องยาก นอกจากนี้ยังมีความยืดหยุ่นอย่างมากในแต่ละภาคผนวกที่ช่วยให้คุณควบคุมเฉพาะสิ่งที่ส่งออกในบันทึกของคุณ
ทราบอย่างหนึ่งฉันมีปัญหา classloader หลายรายการเมื่อฉันใช้ apache commons บันทึกนอกเหนือจาก log4j มันเป็นเพียงแอปพลิเคชั่นเดียวเท่านั้น แต่ฉันพบว่าการใช้ log4j เพียงอย่างเดียวนั้นง่ายกว่าแทนที่จะมีความยืดหยุ่นที่เสนอเมื่อใช้เลเยอร์นามธรรมเช่นการบันทึกแบบคอมมอนส์
ดูบทความนี้สำหรับ รายละเอียดเพิ่มเติม :
โชคดี!
java.util.logging นำเสนอแพคเกจการบันทึกที่ครอบคลุมโดยไม่มีสัมภาระส่วนเกินที่บางส่วนมีให้ ..
log4j เป็นแพ็คเกจที่ดีกว่าโดยรวมและไม่มีอาการสะอึกที่ java.util.logging มี ประการที่สองการใช้ log4j โดยตรงนั้นง่ายกว่าการใช้คอมมอนส์บันทึก
ขอแนะนำให้ใช้Apache Commmons Loggingเป็นอินเทอร์เฟซการบันทึกของคุณ ด้วยวิธีนี้คุณจะมีความยืดหยุ่นในการสลับการใช้งานการบันทึกได้ทุกเมื่อที่คุณต้องการโดยไม่ต้องมีการเปลี่ยนแปลงโค้ดใด ๆ
ฉันจะไปกับ log4j Possibilites กับ log4j นั้นไม่ล้าสมัยเลย!