अपने कस्टम अपवाद वर्ग में मैं toString()
अधिरोहित किया है:ओवरराइड Logback त्रुटि उत्पादन
@Override
public String toString() {
final String msg = getLocalizedMessage();
// base
String str = getClass().getName() + ": [" + code + "]";
// message
if (msg != null)
str += " " + msg;
// extra
if (extra != null) {
str += '\n' + extra.toString();
}
return str;
}
हालांकि (हाँ, मुझे पता है मैं वहाँ StringBuilder
का उपयोग करना चाहिए हूँ), जब मैं इस तरह के एक अपवाद लॉग इन करें (org.slf4j.Logger.warn(String msg, Throwable err)
के माध्यम से) उत्पादन वेनिला अपवादों के लिए है:
webersg.util.service.ServiceError: null
at webersg.util.service.ServiceTools.decodeException(ServiceTools.java:39) ~[bin/:na]
at tr.silvercar.rummikub.robot.LobbyConnection.sendRequestTo(LobbyConnection.java:143) ~[bin/:na]
at tr.silvercar.rummikub.robot.LobbyConnection.sendRequest(LobbyConnection.java:98) ~[bin/:na]
at tr.silvercar.rummikub.robot.Robot.<init>(Robot.java:32) ~[bin/:na]
at tr.silvercar.rummikub.robot.RobotController.start(RobotController.java:81) ~[bin/:na]
at tr.silvercar.rummikub.robot.runners.LocalAltinRobot.main(LocalSilverRobot.java:132) [bin/:na]
मैं अपने अतिरिक्त डेटा प्रकट करने के लिए मिल सकता है? मेरा लॉग कार्यान्वयन लॉगबैक है।
आप (बजाय ClassicConverter से विस्तार की) ThrowableHandlingConverter से विस्तार करना चाहिए बंद हो जाता है। फिर आपको% nopex हैक की भी आवश्यकता नहीं है। और, यदि आप स्टैक ट्रेस मुद्रित करना चाहते हैं, तो% myCon% n के बाद जाना चाहिए। –