ฉันจำเป็นต้องอัพเกรด log4j เป็น slf4j [ปิด]


10

เรากำลังตรวจสอบเว็บแอปพลิเคชัน JEE ของเราเพื่อทำการรีแฟคเตอร์ตามแผนและหนึ่งในข้อเสนอแนะคือการแทนที่log4jด้วยlogbackหรือslf4j

ทีมไม่ชัดเจนว่าเราควรทำเช่นนี้หรือไม่ - เนื่องจากในปัจจุบันเราต้องการติดตามหากมันยังไม่พังอย่าแก้ไขในส่วนนี้

แก้ไข:ฉันไม่ได้ขอให้เปรียบเทียบเฟรมเวิร์กการบันทึก แต่ไม่ว่าจะเป็นองค์ประกอบการรีแฟคเตอร์ที่มีคุณค่าเพื่อเปลี่ยนเฟรมเวิร์กหรือไม่เมื่อเราพอใจกับ log4j

คำตอบ:


18

คำถามสำคัญที่คุณควรคำนึงถึง: คุณสร้างห้องสมุดที่คนอื่นใช้หรือคุณสร้างผลิตภัณฑ์สุดท้ายหรือไม่?

ในกรณีแรก SLF4j มีความสำคัญมากเพราะมีใครบางคนที่จะรวมห้องสมุดของคุณในซอฟต์แวร์ของเขาที่มีการเข้าสู่ระบบแล้วและมันจะดีถ้าชั้นเรียนของคุณใช้สิ่งนั้น

ในกรณีที่สองฉันจะบอกว่าคุณสามารถปล่อยให้มันเป็นอย่างนั้น อาจคิดเกี่ยวกับการใช้ slf4j ในโครงการต่อไป


7

อย่า ใช้เวลาของคุณให้ดีขึ้นเพื่อใช้คุณสมบัติที่มีประโยชน์และมีประโยชน์แทน


6
-1: การบันทึกจะต้องดีที่สุด!

7
ดังนั้น log4j ที่พวกเขาใช้มีประโยชน์ไม่พอ? การเปลี่ยนเฟรมเวิร์คเพียงเพราะมันเป็นไปได้ยากที่จะเสียเวลา OP บันทึกที่ระบุไว้แม้จะไม่เสีย
Martin Wickman

1
ฉันจะไม่ลงคะแนนนี้ มาร์ตินอาจจะถูกต้อง หาก Jose มีผลิตภัณฑ์ที่เสร็จแล้ว (ไม่ใช่ห้องสมุดให้ดูคำตอบของฉัน) เขาควรปล่อยให้มันเป็นอย่างนั้นและใช้เวลาที่อื่น ...
Tim Büthe

2
@ Thorbjørnไม่มีการเข้าสู่ระบบ (เป็นคุณสมบัติทั่วไป) จะต้องดีเท่าที่จำเป็น หากพวกเขาไม่มีปัญหากับ Log4J (btw คุณยังไม่ได้อ้างถึงสิ่งใดที่จะทำให้จำเป็นต้องแทนที่) มีการใช้เวลาส่วนใหญ่ได้ดีกว่า
PéterTörök

1
-1: การตั้งค่าที่ไม่มีเงื่อนไขของอีกรายการหนึ่งคือ IMHO iswrong ลองเปรียบเทียบคำตอบนี้กับเงื่อนไขของคำตอบของ Tim Bueth
Ajeet Ganga

1

หาก Log4J เหมาะกับคุณก็ไม่มีเหตุผลที่จะเปลี่ยนแปลงสิ่งนั้น หากไม่เป็นเช่นนั้นให้มองหาทางเลือกอื่นที่ทำในสิ่งที่คุณต้องการซึ่งอาจจะใช่หรือไม่ใช่ slf4j

เพียงเพราะมีคนพูดว่าบางสิ่งบางอย่างดีกว่าสิ่งอื่นไม่ควรเป็นเหตุผลในการเปลี่ยนใบสมัครทั้งหมดของคุณ (หรือนำสิ่งนั้นมาใช้ใหม่)


0

Slf4j เป็น API ที่ให้คุณเลือกว่าจะใช้ log4j, logback หรือการบันทึก jdk เริ่มต้น ณ เวลาที่ใช้งานแทนที่จะตัดสินใจที่เวลารวบรวม (ซึ่งเป็นสิ่งที่เกิดขึ้นเมื่อคุณโค้ดโดยตรงกับ log4j)

Slf4j ยังให้การสร้าง {} ซึ่งสามารถชะลอการเรียกใช้ toString () ที่มีราคาแพงและหลีกเลี่ยงการโทรทั้งหมดหากไม่ได้เปิดใช้งานคำสั่งบันทึก

จากนั้นคุณสามารถเลือกเครื่องยนต์ในภายหลัง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.