protected void recursiveAppendRootCauseFirst(StringBuilder sb, String prefix, int indent, IThrowableProxy tp) { if (tp.getCause() != null) { recursiveAppendRootCauseFirst(sb, prefix, indent, tp.getCause()); prefix = null; // to avoid adding it more than once } ThrowableProxyUtil.indent(sb, indent - 1); if (prefix != null) { sb.append(prefix); } ThrowableProxyUtil.subjoinFirstLineRootCauseFirst(sb, tp); sb.append(CoreConstants.LINE_SEPARATOR); subjoinSTEPArray(sb, indent, tp); IThrowableProxy[] suppressed = tp.getSuppressed(); if (suppressed != null) { for (IThrowableProxy current : suppressed) { recursiveAppendRootCauseFirst(sb, CoreConstants.SUPPRESSED, indent + ThrowableProxyUtil.SUPPRESSED_EXCEPTION_INDENT, current); } } } }
protected ThrowableHandlingConverter createThrowableProxyConverter(LoggerContext context) { if (exceptionFormat == null) { return new RootCauseFirstThrowableProxyConverter(); } ThrowableHandlingConverter throwableHandlingConverter; if (exceptionFormat.isRootFirst()) { throwableHandlingConverter = new RootCauseFirstThrowableProxyConverter(); } else { throwableHandlingConverter = new ExtendedThrowableProxyConverter(); } List<String> options = new ArrayList<>(); // depth must be added first options.add(exceptionFormat.getDepth()); options.addAll(exceptionFormat.getEvaluators()); throwableHandlingConverter.setOptionList(options); throwableHandlingConverter.setContext(context); return throwableHandlingConverter; }
@Override protected String throwableProxyToString(IThrowableProxy tp) { StringBuilder buf = new StringBuilder(BUILDER_CAPACITY); recursiveAppendRootCauseFirst(buf, null, ThrowableProxyUtil.REGULAR_EXCEPTION_INDENT, tp); return buf.toString(); }
private void subjoinRootCauseFirst(IThrowableProxy tp, StringBuilder buf) { if (tp.getCause() != null) subjoinRootCauseFirst(tp.getCause(), buf); subjoinRootCause(tp, buf); }
@Override protected String throwableProxyToString(IThrowableProxy tp) { StringBuilder buf = new StringBuilder(2048); subjoinRootCauseFirst(tp, buf); return buf.toString(); }
private void subjoinRootCause(IThrowableProxy tp, StringBuilder buf) { ThrowableProxyUtil.subjoinFirstLineRootCauseFirst(buf, tp); buf.append(CoreConstants.LINE_SEPARATOR); StackTraceElementProxy[] stepArray = tp.getStackTraceElementProxyArray(); int commonFrames = tp.getCommonFrames(); boolean unrestrictedPrinting = lengthOption > stepArray.length; int maxIndex = (unrestrictedPrinting) ? stepArray.length : lengthOption; if (commonFrames > 0 && unrestrictedPrinting) { maxIndex -= commonFrames; } for (int i = 0; i < maxIndex; i++) { String string = stepArray[i].toString(); buf.append(CoreConstants.TAB); buf.append(string); extraData(buf, stepArray[i]); // allow other data to be added buf.append(CoreConstants.LINE_SEPARATOR); } }
@Override protected String throwableProxyToString(IThrowableProxy tp) { StringBuilder buf = new StringBuilder(BUILDER_CAPACITY); recursiveAppendRootCauseFirst(buf, null, ThrowableProxyUtil.REGULAR_EXCEPTION_INDENT, tp); return buf.toString(); }
protected void recursiveAppendRootCauseFirst(StringBuilder sb, String prefix, int indent, IThrowableProxy tp) { if (tp.getCause() != null) { recursiveAppendRootCauseFirst(sb, prefix, indent, tp.getCause()); prefix = null; // to avoid adding it more than once } ThrowableProxyUtil.indent(sb, indent - 1); if (prefix != null) { sb.append(prefix); } ThrowableProxyUtil.subjoinFirstLineRootCauseFirst(sb, tp); sb.append(CoreConstants.LINE_SEPARATOR); subjoinSTEPArray(sb, indent, tp); IThrowableProxy[] suppressed = tp.getSuppressed(); if(suppressed != null) { for(IThrowableProxy current : suppressed) { recursiveAppendRootCauseFirst(sb, CoreConstants.SUPPRESSED, indent + ThrowableProxyUtil.SUPPRESSED_EXCEPTION_INDENT, current); } } } }
@Override protected String throwableProxyToString(IThrowableProxy tp) { StringBuilder buf = new StringBuilder(BUILDER_CAPACITY); recursiveAppendRootCauseFirst(buf, null, ThrowableProxyUtil.REGULAR_EXCEPTION_INDENT, tp); return buf.toString(); }
private void handleThrown(JSONObject logstashEvent, ILoggingEvent loggingEvent) { if (loggingEvent.getThrowableProxy() != null) { if (loggingEvent.getThrowableProxy().getClassName() != null) { logstashEvent.put(LayoutFields.EXCEPTION_CLASS, loggingEvent.getThrowableProxy().getClassName()); } if (loggingEvent.getThrowableProxy().getMessage() != null) { logstashEvent.put(LayoutFields.EXCEPTION_MESSAGE, loggingEvent.getThrowableProxy().getMessage()); } ThrowableProxyConverter converter = new RootCauseFirstThrowableProxyConverter(); converter.setOptionList(Arrays.asList("full")); converter.start(); String stackTrace = converter.convert(loggingEvent); logstashEvent.put(LayoutFields.STACK_TRACE, stackTrace); } }
protected void recursiveAppendRootCauseFirst(StringBuilder sb, String prefix, int indent, IThrowableProxy tp) { if (tp.getCause() != null) { recursiveAppendRootCauseFirst(sb, prefix, indent, tp.getCause()); prefix = null; // to avoid adding it more than once } ThrowableProxyUtil.indent(sb, indent - 1); if (prefix != null) { sb.append(prefix); } ThrowableProxyUtil.subjoinFirstLineRootCauseFirst(sb, tp); sb.append(CoreConstants.LINE_SEPARATOR); subjoinSTEPArray(sb, indent, tp); IThrowableProxy[] suppressed = tp.getSuppressed(); if(suppressed != null) { for(IThrowableProxy current : suppressed) { recursiveAppendRootCauseFirst(sb, CoreConstants.SUPPRESSED, indent + ThrowableProxyUtil.SUPPRESSED_EXCEPTION_INDENT, current); } } } }
@Override protected String throwableProxyToString(IThrowableProxy tp) { StringBuilder buf = new StringBuilder(BUILDER_CAPACITY); recursiveAppendRootCauseFirst(buf, null, ThrowableProxyUtil.REGULAR_EXCEPTION_INDENT, tp); return buf.toString(); }
protected void recursiveAppendRootCauseFirst(StringBuilder sb, String prefix, int indent, IThrowableProxy tp) { if (tp.getCause() != null) { recursiveAppendRootCauseFirst(sb, prefix, indent, tp.getCause()); prefix = null; // to avoid adding it more than once } ThrowableProxyUtil.indent(sb, indent - 1); if (prefix != null) { sb.append(prefix); } ThrowableProxyUtil.subjoinFirstLineRootCauseFirst(sb, tp); sb.append(CoreConstants.LINE_SEPARATOR); subjoinSTEPArray(sb, indent, tp); IThrowableProxy[] suppressed = tp.getSuppressed(); if (suppressed != null) { for (IThrowableProxy current : suppressed) { recursiveAppendRootCauseFirst(sb, CoreConstants.SUPPRESSED, indent + ThrowableProxyUtil.SUPPRESSED_EXCEPTION_INDENT, current); } } } }
@Override protected String throwableProxyToString(IThrowableProxy tp) { StringBuilder buf = new StringBuilder(BUILDER_CAPACITY); recursiveAppendRootCauseFirst(buf, null, ThrowableProxyUtil.REGULAR_EXCEPTION_INDENT, tp); return buf.toString(); }
protected void recursiveAppendRootCauseFirst(StringBuilder sb, String prefix, int indent, IThrowableProxy tp) { if (tp.getCause() != null) { recursiveAppendRootCauseFirst(sb, prefix, indent, tp.getCause()); prefix = null; // to avoid adding it more than once } ThrowableProxyUtil.indent(sb, indent - 1); if (prefix != null) { sb.append(prefix); } ThrowableProxyUtil.subjoinFirstLineRootCauseFirst(sb, tp); sb.append(CoreConstants.LINE_SEPARATOR); subjoinSTEPArray(sb, indent, tp); IThrowableProxy[] suppressed = tp.getSuppressed(); if (suppressed != null) { for (IThrowableProxy current : suppressed) { recursiveAppendRootCauseFirst(sb, CoreConstants.SUPPRESSED, indent + ThrowableProxyUtil.SUPPRESSED_EXCEPTION_INDENT, current); } } } }
@Override protected String throwableProxyToString(IThrowableProxy tp) { StringBuilder buf = new StringBuilder(BUILDER_CAPACITY); recursiveAppendRootCauseFirst(buf, null, ThrowableProxyUtil.REGULAR_EXCEPTION_INDENT, tp); return buf.toString(); }
protected void recursiveAppendRootCauseFirst(StringBuilder sb, String prefix, int indent, IThrowableProxy tp) { if (tp.getCause() != null) { recursiveAppendRootCauseFirst(sb, prefix, indent, tp.getCause()); prefix = null; // to avoid adding it more than once } ThrowableProxyUtil.indent(sb, indent - 1); if (prefix != null) { sb.append(prefix); } ThrowableProxyUtil.subjoinFirstLineRootCauseFirst(sb, tp); sb.append(CoreConstants.LINE_SEPARATOR); subjoinSTEPArray(sb, indent, tp); IThrowableProxy[] suppressed = tp.getSuppressed(); if (suppressed != null) { for (IThrowableProxy current : suppressed) { recursiveAppendRootCauseFirst(sb, CoreConstants.SUPPRESSED, indent + ThrowableProxyUtil.SUPPRESSED_EXCEPTION_INDENT, current); } } } }