5
在我的自定義異常類,我重寫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]
我怎樣才能得到我的額外數據能夠出現?我的日誌實現是Logback。
您應該ThrowableHandlingConverter擴展(而不是從ClassicConverter延伸)。那麼你也不需要%nopex黑客。而且,如果你想打印堆棧跟蹤,%myCon應該在%n之後。 – 2016-07-06 14:10:09