public static void logException(RakamHttpRequest request, Throwable e) { if (RAVEN == null) { return; } EventBuilder builder = new EventBuilder() .withSentryInterface(new ExceptionInterface(e)) .withSentryInterface(new HttpInterface(new RakamServletWrapper(request))) .withLevel(Event.Level.WARNING) .withLogger(RakamException.class.getName()); if (TAGS != null) { for (Map.Entry<String, String> entry : TAGS.entrySet()) { builder.withTag(entry.getKey(), entry.getValue()); } } if (RELEASE != null) { builder.withRelease(RELEASE); } RAVEN.sendEvent(builder.build()); }
@Override public void writeInterface(JsonGenerator generator, ExceptionInterface exceptionInterface) throws IOException { Deque<SentryException> exceptions = exceptionInterface.getExceptions(); generator.writeStartArray(); for (Iterator<SentryException> iterator = exceptions.descendingIterator(); iterator.hasNext(); ) { writeException(generator, iterator.next()); } generator.writeEndArray(); }
.withMessage(thrown.getMessage()) .withLevel(Event.Level.FATAL) .withSentryInterface(new ExceptionInterface(thrown));
Deque<SentryException> throwables = ((ExceptionInterface) sentryInterface).getExceptions(); for (SentryException throwable : throwables) { for (SentryStackTraceElement traceElement : throwable.getStackTraceInterface().getStackTrace()) {
/** * Sends an exception (or throwable) to the Sentry server. * <p> * The exception will be logged at the {@link Event.Level#ERROR} level. * * @param throwable exception to send to Sentry. */ public void sendException(Throwable throwable) { EventBuilder eventBuilder = new EventBuilder().withMessage(throwable.getMessage()) .withLevel(Event.Level.ERROR) .withSentryInterface(new ExceptionInterface(throwable)); sendEvent(eventBuilder); }
eventBuilder.withSentryInterface(new ExceptionInterface(throwable));
@NotNull private EventBuilder createEvent(@NotNull IdeaLoggingEvent[] events, @Nullable String additionalInfo) { IdeaLoggingEvent ideaEvent = events[0]; EventBuilder eventBuilder = new EventBuilder(); eventBuilder.withMessage(ideaEvent.getMessage()); eventBuilder.withRelease(getPluginVersion()); eventBuilder.withTag(TAG_PLATFORM_VERSION, getPlatformVersion()); eventBuilder.withTag(TAG_OS, SystemInfo.OS_NAME); eventBuilder.withTag(TAG_OS_VERSION, SystemInfo.OS_VERSION); eventBuilder.withTag(TAG_OS_ARCH, SystemInfo.OS_ARCH); eventBuilder.withTag(TAG_JAVA_VERSION, SystemInfo.JAVA_VERSION); eventBuilder.withTag(TAG_JAVA_RUNTIME_VERSION, SystemInfo.JAVA_RUNTIME_VERSION); Object data = ideaEvent.getData(); if (data instanceof LogMessage) { LogMessage logMessage = (LogMessage) data; Throwable throwable = logMessage.getThrowable(); eventBuilder.withSentryInterface(new ExceptionInterface(throwable)); } else if (ideaEvent.getThrowable() != null) { eventBuilder.withSentryInterface(new ExceptionInterface(ideaEvent.getThrowable())); } if (additionalInfo != null) { eventBuilder.withExtra(EXTRA_ADDITIONAL_INFO, additionalInfo); } if (events.length > 1) { eventBuilder.withExtra(EXTRA_MORE_EVENTS, getMoreEvents(events)); } eventBuilder.withExtra(EXTRA_OTHER_PLUGINS, getOtherPluginsInfo()); return eventBuilder; }
eventBuilder.withSentryInterface(new ExceptionInterface(throwable)); } else if (event.getSource() != null) { StackTraceElement[] stackTrace = {event.getSource()};