आबादी वाले संदेश और अपवाद के ढेर का पता लगाने के लिए सही तरीका क्या है?
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()
, की तरह आपरेशन यानी वे स्ट्रिंग अभ्यावेदन के बजाय वस्तुओं उसके पास करना चाहिए।