জনবহুল বার্তা এবং ব্যতিক্রমের স্ট্যাক ট্রেস উভয়ই লগ করতে সঠিক পন্থাটি কী?
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()
, -একটি অপারেশন অর্থাৎ তারা স্ট্রিং উপস্থাপনা বদলে বস্তু উহার পাস করা উচিত।