Class TestLogHandler

java.lang.Object
java.util.logging.Handler
com.google.common.testing.TestLogHandler

@Beta @GwtCompatible public class TestLogHandler extends Handler
Tests may use this to intercept messages that are logged by the code under test. Example:
  TestLogHandler handler;

  protected void setUp() throws Exception {
    super.setUp();
    handler = new TestLogHandler();
    SomeClass.logger.addHandler(handler);
    addTearDown(new TearDown() {
      public void tearDown() throws Exception {
        SomeClass.logger.removeHandler(handler);
      }
    });
  }

  public void test() {
    SomeClass.foo();
    LogRecord firstRecord = handler.getStoredLogRecords().get(0);
    assertEquals("some message", firstRecord.getMessage());
  }
Since:
10.0
  • Constructor Details

    • TestLogHandler

      public TestLogHandler()
  • Method Details

    • publish

      public void publish(@Nullable LogRecord record)
      Adds the most recently logged record to our list.
      Specified by:
      publish in class Handler
    • flush

      public void flush()
      Specified by:
      flush in class Handler
    • close

      public void close()
      Specified by:
      close in class Handler
    • clear

      public void clear()
    • getStoredLogRecords

      public List<LogRecord> getStoredLogRecords()
      Returns a snapshot of the logged records.