org.hibernate.search.test.util.logging.LoggerInfoStreamTest.java Source code

Java tutorial

Introduction

Here is the source code for org.hibernate.search.test.util.logging.LoggerInfoStreamTest.java

Source

/*
 * 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.LogCategory;
import org.hibernate.search.util.logging.impl.LoggerInfoStream;
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(LogCategory.INFOSTREAM_LOGGER_CATEGORY.getName(), "IW:");

        assertFalse(loggingEvents.isEmpty());
    }
}