public class TestAppender extends AppenderSkeleton { public List<String> messages = new ArrayList<String>(); public void doAppend(LoggingEvent event) { messages.add( event.getMessage().toString() ); } }
public static void main (String [] args) { Logger l = Logger.getLogger("test"); MyAppender app = new MyAppender(); l.addAppender(app); l.warn("first"); l.warn("second"); l.warn("third"); l.trace("fourth shouldn't be printed"); for (LoggingEvent le: app.eventsList) { System.out.println("***" + le.getMessage()); } }
/** * Create event with summary information. * * @return new event. */ public LoggingEvent createEvent() { String msg = MessageFormat.format( "Discarded {0} messages due to full event buffer including: {1}", new Object[] { new Integer(count), maxEvent.getMessage() }); return new LoggingEvent( "org.apache.log4j.AsyncAppender.DONT_REPORT_LOCATION", Logger.getLogger(maxEvent.getLoggerName()), maxEvent.getLevel(), msg, null); } }
public static LoggingEvent getEventContainingString(String expected) { if (testAppender == null) { throw new NullPointerException("Initialize test appender first"); } LoggingEvent found = null; // make sure that different threads are not logging while the logs are checked synchronized (testAppender.events) { for (LoggingEvent event : testAppender.events) { if (event.getMessage().toString().contains(expected)) { found = event; break; } } } return found; }
private Log parseLog(LoggingEvent event) { Log log = new Log(); log.setLogName(event.getLogger().getName()); log.setLogLevel(event.getLevel()); log.setLogThread(event.getThreadName()); log.setLogMessage(event.getMessage().toString()); return log; }
/** * {@inheritDoc} */ public LoggingEvent rewrite(final LoggingEvent source) { if (!properties.isEmpty()) { Map rewriteProps = new HashMap(source.getProperties()); for(Iterator iter = properties.entrySet().iterator(); iter.hasNext(); ) { Map.Entry entry = (Map.Entry) iter.next(); if (!rewriteProps.containsKey(entry.getKey())) { rewriteProps.put(entry.getKey(), entry.getValue()); } } return new LoggingEvent( source.getFQNOfLoggerClass(), source.getLogger() != null ? source.getLogger(): Logger.getLogger(source.getLoggerName()), source.getTimeStamp(), source.getLevel(), source.getMessage(), source.getThreadName(), source.getThrowableInformation(), source.getNDC(), source.getLocationInformation(), rewriteProps); } return source; }
private Log parseLog(LoggingEvent event) { Log log = new Log(); log.setLogName(event.getLogger().getName()); log.setLogLevel(event.getLevel()); log.setLogThread(event.getThreadName()); log.setLogMessage(event.getMessage().toString()); return log; }
@Override public String format(LoggingEvent event) { java.util.logging.Level level = convertLevel(event.getLevel()); LogRecord logRecord = new LogRecord(level, event.getMessage().toString()); logRecord.setLoggerName(event.getLoggerName()); logRecord.setMillis(event.getTimeStamp()); logRecord.setSourceClassName(event.getLoggerName()); logRecord.setSourceMethodName(event.getLocationInformation().getMethodName()); logRecord.setThreadID((int) Thread.currentThread().getId()); return logger.format(logRecord); }
private void assertLogOccurred( Level level, String message ) { ArrayList<LoggingEvent> events = getLoggingEvents(); assertThat( events, hasSize( 1 ) ); LoggingEvent event = events.get( 0 ); assertThat( event.getLoggerName(), is( getClass().getName() ) ); assertThat( event.getLevel(), is( level ) ); assertThat( event.getMessage(), is( message ) ); }
Object msg = source.getMessage(); if (msg instanceof Map) { Map props = new HashMap(source.getProperties());
@Override public String format(final LoggingEvent event) { if (event.getMessage() instanceof String) { return super.format(appendStackTraceToEvent(event)); } return super.format(event); }
final LoggingEvent firstLogEntry = log.get(0); assertThat(firstLogEntry.getLevel(), is(Level.INFO)); assertThat((String) firstLogEntry.getMessage(), is("Test")); assertThat(firstLogEntry.getLoggerName(), is("MyTest"));
Object msg = source.getMessage(); if (!(msg instanceof String)) { Object newMsg = msg;
String packet; if (layout == null) { packet = String.valueOf(event.getMessage()); } else { packet = layout.format(event);
Object object = event.getMessage(); if ( object instanceof LogMessage ) { LogMessage message = (LogMessage) object;
/** * Create a copy of event, but append a stack trace to the message (if it exists). Then it escapes * the backslashes, tabs, newlines and quotes in its message as we are sending it as JSON and we * don't want any corruption of the JSON object. */ private LoggingEvent appendStackTraceToEvent(final LoggingEvent event) { String message = event.getMessage().toString(); // If there is a stack trace available, print it out if (event.getThrowableInformation() != null) { final String[] s = event.getThrowableStrRep(); for (final String line : s) { message += "\n" + line; } } message = message .replace("\\", "\\\\") .replace("\n", "\\n") .replace("\"", "\\\"") .replace("\t", "\\t"); final Throwable throwable = event.getThrowableInformation() == null ? null : event.getThrowableInformation().getThrowable(); return new LoggingEvent(event.getFQNOfLoggerClass(), event.getLogger(), event.getTimeStamp(), event.getLevel(), message, throwable); } }
if (loggingEvent.getMessage() instanceof Collection) { messages = (Collection) loggingEvent.getMessage(); } else { messages = Collections.singleton(loggingEvent.getMessage());
String packet; if (layout == null) { packet = String.valueOf(event.getMessage()); } else { packet = layout.format(event);
if (!event.getMessage().equals(messagePart)) { return false;
Object message = element.getMessage(); if (message != null) {