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()); }
private void writeEnvironment(JsonGenerator generator, HttpInterface httpInterface) throws IOException { generator.writeStartObject(); generator.writeStringField(ENV_REMOTE_ADDR, httpInterface.getRemoteAddr()); generator.writeStringField(ENV_SERVER_NAME, httpInterface.getServerName()); generator.writeNumberField(ENV_SERVER_PORT, httpInterface.getServerPort()); generator.writeStringField(ENV_LOCAL_ADDR, httpInterface.getLocalAddr()); generator.writeStringField(ENV_LOCAL_NAME, httpInterface.getLocalName()); generator.writeNumberField(ENV_LOCAL_PORT, httpInterface.getLocalPort()); generator.writeStringField(ENV_SERVER_PROTOCOL, httpInterface.getProtocol()); generator.writeBooleanField(ENV_REQUEST_SECURE, httpInterface.isSecure()); generator.writeBooleanField(ENV_REQUEST_ASYNC, httpInterface.isAsyncStarted()); generator.writeStringField(ENV_AUTH_TYPE, httpInterface.getAuthType()); //TODO: Should that be really displayed here ? Consider the user interface? generator.writeStringField(ENV_REMOTE_USER, httpInterface.getRemoteUser()); generator.writeEndObject(); }
@Override public void writeInterface(JsonGenerator generator, HttpInterface httpInterface) throws IOException { generator.writeStartObject(); generator.writeStringField(URL, httpInterface.getRequestUrl()); generator.writeStringField(METHOD, httpInterface.getMethod()); generator.writeFieldName(DATA); writeData(generator, httpInterface.getParameters(), httpInterface.getBody()); generator.writeStringField(QUERY_STRING, httpInterface.getQueryString()); generator.writeFieldName(COOKIES); writeCookies(generator, httpInterface.getCookies()); generator.writeFieldName(HEADERS); writeHeaders(generator, httpInterface.getHeaders()); generator.writeFieldName(ENVIRONMENT); writeEnvironment(generator, httpInterface); generator.writeEndObject(); }
public static void logException(RakamHttpRequest request, RakamException e) { if (RAVEN == null) { return; } EventBuilder builder = new EventBuilder() .withMessage(e.getMessage()) .withSentryInterface(new HttpInterface(new RakamServletWrapper(request))) .withLevel(Event.Level.ERROR) .withLogger(RakamException.class.getName()) .withTag("status", e.getStatusCode().reasonPhrase()); 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()); }
private void addHttpInterface(EventBuilder eventBuilder, HttpServletRequest servletRequest) { eventBuilder.withSentryInterface(new HttpInterface(servletRequest, remoteAddressResolver), false); }