Example usage for org.apache.solr.logging LogWatcher newRegisteredLogWatcher

List of usage examples for org.apache.solr.logging LogWatcher newRegisteredLogWatcher

Introduction

In this page you can find the example usage for org.apache.solr.logging LogWatcher newRegisteredLogWatcher.

Prototype

public static LogWatcher newRegisteredLogWatcher(LogWatcherConfig config, SolrResourceLoader loader) 

Source Link

Document

Create and register a LogWatcher.

Usage

From source file:org.vootoo.logging.logback.LogbackWatcherTest.java

License:Apache License

@Test
public void testLogbackWatcher() {

    Logger log = LoggerFactory.getLogger("testlogger");
    LogWatcher watcher = LogWatcher.newRegisteredLogWatcher(config, loader);

    assertEquals(watcher.getLastEvent(), -1);

    log.warn("This is a test message");

    assertTrue(watcher.getLastEvent() > -1);

    SolrDocumentList events = watcher.getHistory(-1, new AtomicBoolean());
    assertEquals(events.size(), 1);/*from w  w w.  j av a2  s  .c  o m*/

    SolrDocument event = events.get(0);
    assertEquals(event.get("logger"), "testlogger");
    assertEquals(event.get("message"), "This is a test message");

    //test set watcherThreshold
    watcher.setThreshold("info");
    long last = watcher.getLastEvent();
    sleep(5);

    log.info("test info message");

    assertTrue(watcher.getLastEvent() > last);

    events = watcher.getHistory(last, new AtomicBoolean());
    assertEquals(events.size(), 1);

    event = events.get(0);
    assertEquals(event.get("logger"), "testlogger");//level
    assertEquals(event.get("message"), "test info message");
    assertTrue("info".equalsIgnoreCase(event.get("level").toString()));

    watcher.setThreshold("warn");
    last = watcher.getLastEvent();
    sleep(5);

    log.info("test another info message");

    assertTrue(watcher.getLastEvent() == last);
}