วิธีการที่ถูกต้องในการบันทึกข้อความที่มีประชากรและการติดตามสแต็กของข้อยกเว้นคืออะไร?
logger.error(
"\ncontext info one two three: {} {} {}\n",
new Object[] {"1", "2", "3"},
new Exception("something went wrong"));
ฉันต้องการที่จะผลิตผลลัพธ์ที่คล้ายกับนี้:
context info one two three: 1 2 3
java.lang.Exception: something went wrong
stacktrace 0
stacktrace 1
stacktrace ...
slf4j เวอร์ชั่น 1.6.1
{}
มากขึ้นเรื่องของการลิ้มรส ...
toString()
วิธีการโต้แย้งอาจมีราคาแพง ด้วยไวยากรณ์นี้จะมีการส่งการอ้างอิงไปยังแต่ละวัตถุเท่านั้นและtoString()
วิธีการนั้นจะถูกเรียกก็ต่อเมื่อข้อความนั้นได้รับการบันทึกอย่างแท้จริง วัตถุที่อ้างอิงในการinfo()
เรียกบันทึกจะไม่มีtoString()
วิธีการของพวกเขาเรียกว่าถ้าระดับการบันทึกเป็นWARN
หรือสูงกว่า {}
ไวยากรณ์การแจ้งเตือนไปยังผู้ใช้ที่นี้ไม่ได้เป็นString.format()
การดำเนินงานเหมือนเช่นที่พวกเขาควรจะผ่านวัตถุมากกว่าการแสดงสตริงดังกล่าว