/*
* 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 java.util.List;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;
import org.hibernate.search.util.logging.impl.LoggerInfoStream;
import org.hibernate.search.util.logging.impl.LuceneLogCategories;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static junit.framework.TestCase.assertFalse;
public class LoggerInfoStreamTest {
private static final Version VERSION = Version.LUCENE_5_4_0;
private Level hsearchLevel;
private final Logger hsearchLogger = Logger.getLogger( "org.hibernate.search" );
private final Logger rootLogger = Logger.getRootLogger();
private TestAppender testAppender;
@Before
public void setUp() throws Exception {
testAppender = new TestAppender();
rootLogger.addAppender( testAppender );
hsearchLevel = hsearchLogger.getLevel();
hsearchLogger.setLevel( Level.TRACE );
}
@After
public void tearDown() throws Exception {
rootLogger.removeAppender( testAppender );
hsearchLogger.setLevel( hsearchLevel );
}
@Test
public void testEnableInfoStream() throws Exception {
LoggerInfoStream infoStream = new LoggerInfoStream();
RAMDirectory directory = new RAMDirectory();
IndexWriterConfig indexWriterConfig = new IndexWriterConfig( new StandardAnalyzer() );
indexWriterConfig.setInfoStream( infoStream );
IndexWriter indexWriter = new IndexWriter( directory, indexWriterConfig );
Document doc = new Document();
doc.add( new StringField( "f1", "value1", Field.Store.YES ) );
indexWriter.addDocument( doc );
indexWriter.commit();
indexWriter.close();
List<LoggingEvent> loggingEvents = testAppender.searchByLoggerAndMessage( LuceneLogCategories.INFOSTREAM_LOGGER_CATEGORY.getName(), "IW:" );
assertFalse( loggingEvents.isEmpty() );
}
}