}
c = c.getSuperclass();
}
}
ExceptionLog log = t.getClass().getAnnotation(ExceptionLog.class);
if (details != null) {
Logger.Level level = details.level;
Logger.Level stackTraceLevel = details.stackTraceLevel;
String category = details.category;
handleCustomLog(exchange, t, level, stackTraceLevel, category);
} else if (log != null) {
Logger.Level level = log.value();
Logger.Level stackTraceLevel = log.stackTraceLevel();
String category = log.category();
handleCustomLog(exchange, t, level, stackTraceLevel, category);
} else if (t instanceof IOException) {
//we log IOExceptions at a lower level
//because they can be easily caused by malicious remote clients in at attempt to DOS the server by filling the logs
UndertowLogger.REQUEST_IO_LOGGER.debugf(t, "Exception handling request to %s", exchange.getRequestURI());