Apa pendekatan yang benar untuk mencatat pesan terpopulasi dan jejak stack pengecualian?
logger.error(
"\ncontext info one two three: {} {} {}\n",
new Object[] {"1", "2", "3"},
new Exception("something went wrong"));
Saya ingin menghasilkan keluaran yang mirip dengan ini:
context info one two three: 1 2 3
java.lang.Exception: something went wrong
stacktrace 0
stacktrace 1
stacktrace ...
slf4j versi 1.6.1
{}
lebih banyak, soal selera ...
toString()
Metode argumen mungkin mahal. Dengan sintaks ini, hanya referensi ke setiap objek yang diteruskan dan toString()
metode ini hanya dipanggil jika pesan tertentu benar-benar dicatat. Objek yang direferensikan dalam info()
panggilan log tidak akan memanggil toString()
metode mereka jika tingkat log WARN
lebih tinggi. The {}
sintaks adalah pengingat kepada pengguna bahwa ini bukan String.format()
operasi -seperti, yaitu mereka harus lulus objek daripada representasi string yang daripadanya.