private LoggingEvent makeEvent(Level level, String message, Throwable th) { LoggingEvent event = new LoggingEvent(); event.setLoggerName(CloudWatchAppender.class.getName()); event.setLevel(level); event.setMessage(message); event.setTimeStamp(System.currentTimeMillis()); if (th != null) { event.setThrowableProxy(new ThrowableProxy(th)); } return event; } }
private LoggingEvent makeEvent(Level level, String message, Throwable th) { LoggingEvent event = new LoggingEvent(); event.setLoggerName(CloudWatchAppender.class.getName()); event.setLevel(level); event.setMessage(message); event.setTimeStamp(System.currentTimeMillis()); if (th != null) { event.setThrowableProxy(new ThrowableProxy(th)); } return event; } }
@SuppressWarnings("unchecked") @Test public void layoutWithException() throws Exception { layout.setPattern("%level %thread %msg %ex"); LoggingEvent le = createLoggingEvent(); le.setThrowableProxy(new ThrowableProxy(new Exception("test Exception"))); String result = layout.doLayout(le); String stringToParse = layout.getFileHeader(); stringToParse = stringToParse + layout.getPresentationHeader(); stringToParse += result; stringToParse += "</table></body></html>"; // System.out.println(stringToParse); Document doc = parseOutput(stringToParse); Element rootElement = doc.getRootElement(); Element bodyElement = rootElement.element("body"); Element tableElement = bodyElement.element("table"); List<Element> trElementList = tableElement.elements(); Element exceptionRowElement = trElementList.get(2); Element exceptionElement = exceptionRowElement.element("td"); assertEquals(3, tableElement.elements().size()); assertTrue(exceptionElement.getText().contains( "java.lang.Exception: test Exception")); }
le.setLoggerName(loggerName); le.setThreadName(entry.getThreadInfo()); le.setThrowableProxy(getThrowableProxy(entry.getException())); le.setTimeStamp(entry.getTime());
@Test public void extendendeThrowable() throws Exception { LoggingEvent event = createLoggingEvent(); Throwable throwable = new Throwable("just testing"); ThrowableProxy tp = new ThrowableProxy(throwable); event.setThrowableProxy(tp); tp.calculatePackagingData(); ILoggingEvent remoteEvent = writeAndRead(event); checkForEquality(event, remoteEvent); }
@SuppressWarnings("unchecked") private static LoggingEvent readLoggingEvent(ExcerptTailer ex, LoggerContext ctx) { LoggingEventRecord rec = LoggingEventRecord.read(ex); Logger logger = ctx.getLogger(rec.getLoggerName()); LoggingEvent evt = new LoggingEvent( logger.getClass().getName(), logger, Level.toLevel(rec.getLevel()), rec.getMessage(), rec.getCause(), rec.getArgs() ); evt.setTimeStamp(rec.getTimestamp()); evt.setThreadName(rec.getThreadName()); evt.setMDCPropertyMap(rec.getMdcProps()); if (null != rec.getCause()) { evt.setThrowableProxy(new ThrowableProxy(rec.getCause())); } evt.setCallerData(rec.getCallerData()); return evt; }
@Test public void tagExcludesStackTraces() { // create logging event with throwable LoggingEvent event = new LoggingEvent(); Throwable throwable = new Throwable("throwable"); ThrowableProxy tp = new ThrowableProxy(throwable); event.setThrowableProxy(tp); event.setMessage(TAG); setTagPattern(TAG, true); // if the tags match, it does not include the stack trace String actualTag = logcatAppender.getTagEncoder().getLayout().doLayout(event); assertThat(TAG, is(actualTag)); }
@SuppressWarnings("unchecked") private static LoggingEvent readLoggingEvent(ExcerptTailer ex, LoggerContext ctx) { LoggingEventRecord rec = LoggingEventRecord.read(ex); Logger logger = ctx.getLogger(rec.getLoggerName()); LoggingEvent evt = new LoggingEvent( logger.getClass().getName(), logger, Level.toLevel(rec.getLevel()), rec.getMessage(), rec.getCause(), rec.getArgs() ); evt.setTimeStamp(rec.getTimestamp()); evt.setThreadName(rec.getThreadName()); evt.setMDCPropertyMap(rec.getMdcProps()); if (null != rec.getCause()) { evt.setThrowableProxy(new ThrowableProxy(rec.getCause())); } evt.setCallerData(rec.getCallerData()); return evt; }
@Override public void onLog(LogEntry logEntry) { final LoggingEvent loggingEvent = new LoggingEvent(); loggingEvent.setTimeStamp(logEntry.getTimestamp()); loggingEvent.setLoggerName(logEntry.getLoggerName()); loggingEvent.setLevel(Level.valueOf(logEntry.getLogLevel().name())); loggingEvent.setThreadName(logEntry.getThreadName()); Object [] formatObjects = new Object[] {logEntry.getHost(), getSimpleClassName(logEntry.getSourceClassName()), logEntry.getSourceMethodName(), logEntry.getFileName(), logEntry.getLineNumber(),logEntry.getMessage()}; loggingEvent.setMessage(MESSAGE_FORMAT.get().format(formatObjects)); // Prints the throwable and stack trace. LogThrowable logThrowable = logEntry.getThrowable(); if (logThrowable != null) { loggingEvent.setThrowableProxy(new ThrowableProxy(setThrowable(logThrowable))); } if (logger instanceof Logger) { ((Logger) logger).callAppenders(loggingEvent); } else { logger.info("Logger is not instance of ch.qos.logback.classic.Logger. Logger event is: {}", loggingEvent); } }
le.setThrowableProxy(new ThrowableProxy(t));
le.setThrowableProxy(new ThrowableProxy(t));