Logback read Throwable экземпляр из ILoggingEvent - PullRequest
0 голосов
/ 20 сентября 2019

Я делаю хак с 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)

...