@Test
public void testLogger() throws Exception {
final List<LogRecord> records = new ArrayList<LogRecord>();
// Tell the logger to log everything
ConsoleHandler handler = (ConsoleHandler) LogManager.getLogManager().getLogger("")
.getHandlers()[0];
java.util.logging.Level oldLevel = handler.getLevel();
handler.setLevel(Level.ALL);
// Capture the logging output without actually logging it
handler.setFilter(new Filter() {
public boolean isLoggable(LogRecord record) {
records.add(record);
return false;
}
});
try {
JCas jcas = JCasFactory.createJCas();
createEngine(LoggingCasConsumerChristmasTree.class).process(jcas.getCas());
assertEquals(10, records.size());
assertEquals(Level.FINER, records.get(0).getLevel());
assertEquals(Level.FINER, records.get(1).getLevel());
assertEquals(Level.FINE, records.get(2).getLevel());
assertEquals(Level.FINE, records.get(3).getLevel());
assertEquals(Level.INFO, records.get(4).getLevel());
assertEquals(Level.INFO, records.get(5).getLevel());
assertEquals(Level.WARNING, records.get(6).getLevel());
assertEquals(Level.WARNING, records.get(7).getLevel());
assertEquals(Level.SEVERE, records.get(8).getLevel());
assertEquals(Level.SEVERE, records.get(9).getLevel());
} finally {
if (oldLevel != null) {
handler.setLevel(oldLevel);
handler.setFilter(null);
}
}
}