วิธีการที่ถูกต้องในการบันทึกข้อความที่มีประชากรและการติดตามสแต็กของข้อยกเว้นคืออะไร?
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()การดำเนินงานเหมือนเช่นที่พวกเขาควรจะผ่านวัตถุมากกว่าการแสดงสตริงดังกล่าว