@Override public String doLayout(ILoggingEvent event) { if (!isStarted()) { return CoreConstants.EMPTY_STRING; } StringBuilder sb = new StringBuilder(); long timestamp = event.getTimeStamp(); sb.append(cachingDateFormatter.format(timestamp)); sb.append(" ["); sb.append(event.getThreadName()); sb.append("] "); sb.append(event.getLevel().toString()); sb.append(" "); sb.append(event.getLoggerName()); sb.append(" - "); sb.append(event.getFormattedMessage()); sb.append(CoreConstants.LINE_SEPARATOR); IThrowableProxy tp = event.getThrowableProxy(); if (tp != null) { String stackTrace = tpc.convert(event); sb.append(stackTrace); } return sb.toString(); }
@Override public String convert(ILoggingEvent event) { if (SCHEMA_SPY_LOGGER.isDebugEnabled()) return super.convert(event); omittedStackTrace.set(true); if (Objects.nonNull(event.getThrowableProxy())) { return event.getThrowableProxy().getMessage() + CoreConstants.LINE_SEPARATOR; } return CoreConstants.EMPTY_STRING; }
void verify(Throwable t) { t.printStackTrace(pw); ILoggingEvent le = createLoggingEvent(t); String result = tpc.convert(le); System.out.println(result); result = result.replace("common frames omitted", "more"); assertEquals(sw.toString(), result); } }
protected void writeStackTrace(JsonWriter.ObjectWriter<JsonWriter> writer, ILoggingEvent event) throws IOException { String stackTrace = throwableProxyConverter.convert(event); if (stackTrace != null && !stackTrace.isEmpty()) { writer.writeStringField(fieldNames.getStackTrace(), stackTrace, isActive(fieldNames.getStackTrace())); } }
@Override public String doLayout(ILoggingEvent event) { if (!isStarted()) { return CoreConstants.EMPTY_STRING; } StringBuilder sb = new StringBuilder(); long timestamp = event.getTimeStamp(); sb.append(cachingDateFormatter.format(timestamp)); sb.append(" ["); sb.append(event.getThreadName()); sb.append("] "); sb.append(event.getLevel().toString()); sb.append(" "); sb.append(event.getLoggerName()); sb.append(" - "); sb.append(event.getFormattedMessage()); sb.append(CoreConstants.LINE_SEPARATOR); IThrowableProxy tp = event.getThrowableProxy(); if (tp != null) { String stackTrace = tpc.convert(event); sb.append(stackTrace); } return sb.toString(); }
protected void writeStackTrace(JsonWriter.ObjectWriter<JsonWriter> writer, ILoggingEvent event) throws IOException { String stackTrace = throwableProxyConverter.convert(event); if (stackTrace != null && !stackTrace.isEmpty()) { writer.writeStringField(fieldNames.getStackTrace(), stackTrace, isActive(fieldNames.getStackTrace())); } }
public String doLayout(ILoggingEvent event) { if (!isStarted()) { return CoreConstants.EMPTY_STRING; } StringBuilder sb = new StringBuilder(); long timestamp = event.getTimeStamp(); sb.append(cachingDateFormatter.format(timestamp)); sb.append(" ["); sb.append(event.getThreadName()); sb.append("] "); sb.append(event.getLevel().toString()); sb.append(" "); sb.append(event.getLoggerName()); sb.append(" - "); sb.append(event.getFormattedMessage()); sb.append(CoreConstants.LINE_SEPARATOR); IThrowableProxy tp = event.getThrowableProxy(); if (tp != null) { String stackTrace = tpc.convert(event); sb.append(stackTrace); } return sb.toString(); }
@Override public String doLayout(ILoggingEvent event) { if (!isStarted()) { return CoreConstants.EMPTY_STRING; } StringBuilder sb = new StringBuilder(); long timestamp = event.getTimeStamp(); sb.append(cachingDateFormatter.format(timestamp)); sb.append(" ["); sb.append(event.getThreadName()); sb.append("] "); sb.append(event.getLevel().toString()); sb.append(" "); sb.append(event.getLoggerName()); sb.append(" - "); sb.append(event.getFormattedMessage()); sb.append(CoreConstants.LINE_SEPARATOR); IThrowableProxy tp = event.getThrowableProxy(); if (tp != null) { String stackTrace = tpc.convert(event); sb.append(stackTrace); } return sb.toString(); }
@Override public String doLayout(ILoggingEvent event) { if (!isStarted()) { return CoreConstants.EMPTY_STRING; } StringBuilder sb = new StringBuilder(); long timestamp = event.getTimeStamp(); sb.append(cachingDateFormatter.format(timestamp)); sb.append(" ["); sb.append(event.getThreadName()); sb.append("] "); sb.append(event.getLevel().toString()); sb.append(" "); sb.append(event.getLoggerName()); sb.append(" - "); sb.append(event.getFormattedMessage()); sb.append(CoreConstants.LINE_SEPARATOR); IThrowableProxy tp = event.getThrowableProxy(); if (tp != null) { String stackTrace = tpc.convert(event); sb.append(stackTrace); } return sb.toString(); }
@Test public void smoke() { //given Exception exception = new Exception("smoke"); exception.printStackTrace(printWriter); //when ILoggingEvent le = createLoggingEvent(exception); String result = converter.convert(le); //then result = result.replace("common frames omitted", "more"); result = result.replaceAll(" ~?\\[.*\\]", ""); //assertThat(result).isEqualTo(stringWriter.toString()); assertEquals(stringWriter.toString(), result); }
@Test public void withShortArgument() throws Exception { final Throwable t = TestHelper.makeNestedException(0); t.printStackTrace(pw); final ILoggingEvent le = createLoggingEvent(t); final List<String> options = Arrays.asList("short"); tpc.setOptionList(options); tpc.start(); final String result = tpc.convert(le); final BufferedReader reader = new BufferedReader(new StringReader(result)); assertTrue(reader.readLine().contains(t.getMessage())); assertNotNull(reader.readLine()); assertNull("Unexpected line in stack trace", reader.readLine()); }
@Test public void withArgumentOfOne() throws Exception { final Throwable t = TestHelper.makeNestedException(0); t.printStackTrace(pw); final ILoggingEvent le = createLoggingEvent(t); final List<String> optionList = Arrays.asList("1"); tpc.setOptionList(optionList); tpc.start(); final String result = tpc.convert(le); final BufferedReader reader = new BufferedReader(new StringReader(result)); assertTrue(reader.readLine().contains(t.getMessage())); assertNotNull(reader.readLine()); assertNull("Unexpected line in stack trace", reader.readLine()); }
@Test public void skipSelectedLine() throws Exception { String nameOfContainingMethod = "skipSelectedLine"; //given final Throwable t = TestHelper.makeNestedException(0); t.printStackTrace(pw); final ILoggingEvent le = createLoggingEvent(t); tpc.setOptionList(Arrays.asList("full", nameOfContainingMethod)); tpc.start(); //when final String result = tpc.convert(le); //then assertThat(result, is(not(emptyString()))); assertThat(result, not(containsString(nameOfContainingMethod))); }
@Test public void shouldLimitTotalLinesExcludingSkipped() throws Exception { //given final Throwable t = TestHelper.makeNestedException(0); t.printStackTrace(pw); final ILoggingEvent le = createLoggingEvent(t); tpc.setOptionList(Arrays.asList("3", "shouldLimitTotalLinesExcludingSkipped")); tpc.start(); //when final String result = tpc.convert(le); //then String[] lines = result.split(CoreConstants.LINE_SEPARATOR); assertThat(lines, Matchers.<String>arrayWithSize(3 + 1)); }
@Test public void nested() { //given Throwable nestedException = makeNestedException(2); nestedException.printStackTrace(printWriter); //when ILoggingEvent le = createLoggingEvent(nestedException); String result = converter.convert(le); //then // assertThat(result).startsWith("java.lang.Exception: nesting level=0"); // assertThat( // positionOf("nesting level=0").in(result)).isLessThan( // positionOf("nesting level =1").in(result)); // assertThat( // positionOf("nesting level =1").in(result)).isLessThan( // positionOf("nesting level =2").in(result)); assertTrue(result.startsWith("java.lang.Exception: nesting level=0")); assertTrue(positionOf("nesting level=0").in(result) < positionOf("nesting level =1").in(result)); assertTrue(positionOf("nesting level =1").in(result) < positionOf("nesting level =2").in(result)); }
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); } }
String convertedThrowable = throwableConverter.convert(event);