/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.search.test.util.logging;
import org.apache.commons.collections.map.MultiValueMap;
import org.apache.log4j.WriterAppender;
import org.apache.log4j.spi.LoggingEvent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class TestAppender extends WriterAppender {
private final MultiValueMap eventsByLogger = new MultiValueMap();
@Override
public void append(LoggingEvent event) {
synchronized (this) {
eventsByLogger.put( event.getLoggerName(), event );
}
}
public List<LoggingEvent> searchByLoggerAndMessage(String logger, String contents) {
ArrayList<LoggingEvent> results = new ArrayList<>();
synchronized (this) {
Collection collection = eventsByLogger.getCollection( logger );
if ( collection == null ) {
return results;
}
for ( Object event : collection ) {
LoggingEvent loggingEvent = (LoggingEvent) event;
if ( loggingEvent.getRenderedMessage().contains( contents ) ) {
results.add( loggingEvent );
}
}
}
return results;
}
}