final Filter socketFilter = new ThreadFilter(Filter.Result.NEUTRAL, Filter.Result.DENY);
final Filter serverFilter = new ThreadFilter(Filter.Result.DENY, Filter.Result.NEUTRAL);
final SocketAppender appender = SocketAppender.createAppender("localhost", this.port, this.protocol, "-1", null, "Test", null,
"false", null, socketFilter, null, null);
appender.start();
final ListAppender listApp = new ListAppender("Events", serverFilter, null, false, false);
listApp.start();
final PatternLayout layout = PatternLayout.createLayout("%m %ex%n", null, null, null, null);
final ConsoleAppender console = ConsoleAppender.createAppender(layout, null, "SYSTEM_OUT", "Console", "false", "true");
final Logger serverLogger = ctx.getLogger(this.getClass().getName());
serverLogger.addAppender(console);
serverLogger.setAdditive(false);
// set appender on root and set level to debug
root.addAppender(appender);
root.addAppender(listApp);
root.setAdditive(false);
root.setLevel(Level.DEBUG);
root.debug(message1);
root.debug(message2);
Thread.sleep(100);
final List<LogEvent> events = listApp.getEvents();
assertNotNull("No event retrieved", events);
assertTrue("No events retrieved", events.size() > 0);
assertTrue("Incorrect event", events.get(0).getMessage().getFormattedMessage().equals(message1));
assertTrue("Incorrect number of events received: " + events.size(), events.size() == 2);
assertTrue("Incorrect event", events.get(1).getMessage().getFormattedMessage().equals(message2));