ฉันใช้Log4Jในแอปพลิเคชันของฉันเพื่อบันทึก ก่อนหน้านี้ฉันใช้การโทรดีบั๊กเช่น:
ตัวเลือกที่ 1:
logger.debug("some debug text");
แต่บางลิงค์แนะนำว่าควรตรวจสอบisDebugEnabled()
ก่อนดีกว่าเช่น:
ตัวเลือก 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
ดังนั้นคำถามของฉันคือ " ตัวเลือก 2 ปรับปรุงประสิทธิภาพหรือไม่ "
เพราะในกรณีใด ๆ กรอบ Log4J มีการตรวจสอบเดียวกันสำหรับ debugEnabled สำหรับตัวเลือกที่ 2 อาจเป็นประโยชน์ถ้าเราใช้คำสั่ง debug หลายคำสั่งในวิธีการเดียวหรือคลาสที่กรอบไม่จำเป็นต้องเรียกisDebugEnabled()
วิธีการหลายครั้ง (ในการโทรแต่ละครั้ง); ในกรณีนี้จะเรียกisDebugEnabled()
ใช้เมธอดเพียงครั้งเดียวและหาก Log4J ได้รับการกำหนดค่าให้ดีบั๊กระดับจริง ๆ แล้วมันจะเรียกisDebugEnabled()
เมธอดสองครั้ง:
- ในกรณีที่กำหนดค่าให้กับตัวแปร debugEnabled และ
- เรียกจริงโดยวิธี logger.debug ()
ฉันไม่คิดว่าถ้าเราเขียนหลายlogger.debug()
คำสั่งในวิธีการหรือชั้นเรียนและdebug()
วิธีการโทรตามตัวเลือก 1 แล้วมันเป็นค่าใช้จ่ายสำหรับกรอบ Log4J เมื่อเทียบกับตัวเลือก 2 เนื่องจากisDebugEnabled()
เป็นวิธีที่เล็กมาก (ในแง่ของรหัส) มันอาจ เป็นผู้สมัครที่ดีสำหรับการทำอินไลน์