Я делаю хак с Logback, имея ILoggingEvent
Мне нужно будет получить доступ к Throwable
, когда я сделаю:
LOG.error("KABOOM", new MyException());
У ILoggingEvent
есть метод getThrowableProxy()
,я нашел единственный способ получить доступ к экземпляру Throwable
(мне нужно проверить, относится ли он к какому-то определенному типу):
private MyException retrieveException(ILoggingEvent e) {
MyException result = null;
if (e.getThrowableProxy() instanceof ThrowableProxy) {
final var ex = ((ThrowableProxy) e.getThrowableProxy()).getThrowable();
if (ex instanceof MyException) {
result = (MyException) ex;
}
}
return result;
}
Я не знаю, насколько безопасно использовать instanceof
может ли случиться так, что я потеряю какое-то исключение?
(я использую это внутри logstash AbstractJsonProvider
)