Class MemoryAppender

  • All Implemented Interfaces:
    ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.ContextAware, ch.qos.logback.core.spi.FilterAttachable<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.LifeCycle

    public class MemoryAppender
    extends ch.qos.logback.core.read.ListAppender<ch.qos.logback.classic.spi.ILoggingEvent>
    Store log events to facilitate assertions. Inspired by https://www.baeldung.com/junit-asserting-logs.
    • Field Summary

      • Fields inherited from class ch.qos.logback.core.read.ListAppender

        list
      • Fields inherited from class ch.qos.logback.core.AppenderBase

        name, started
      • Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase

        context
    • Constructor Summary

      Constructors 
      Constructor Description
      MemoryAppender​(java.lang.Class loggerClass)
      Construct a MemoryAppender and start capturing debug (and more severe) log messages.
      MemoryAppender​(java.lang.Class loggerClass, ch.qos.logback.classic.Level level)
      Construct a MemoryAppender and start capturing logs.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      long countEventsForLevel​(ch.qos.logback.classic.Level level)
      Count log messages at a particular level
      java.util.List<java.lang.String> layoutSearch​(java.lang.String string, ch.qos.logback.classic.Level level)
      Return laid out log messages at a particular level that contain a string
      void reset()
      Clear captured log messages
      java.util.List<java.lang.String> search​(java.lang.String string, ch.qos.logback.classic.Level level)
      Return log messages at a particular level that contain a string
      • Methods inherited from class ch.qos.logback.core.read.ListAppender

        append
      • Methods inherited from class ch.qos.logback.core.AppenderBase

        addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, start, stop, toString
      • Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase

        addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface ch.qos.logback.core.spi.ContextAware

        addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
    • Constructor Detail

      • MemoryAppender

        public MemoryAppender​(java.lang.Class loggerClass)
        Construct a MemoryAppender and start capturing debug (and more severe) log messages.
        Parameters:
        loggerClass - capture log events generated by this class
      • MemoryAppender

        public MemoryAppender​(java.lang.Class loggerClass,
                              ch.qos.logback.classic.Level level)
        Construct a MemoryAppender and start capturing logs.
        Parameters:
        loggerClass - capture log events generated by this class
        level - capture log events up to this level
    • Method Detail

      • reset

        public void reset()
        Clear captured log messages
      • countEventsForLevel

        public long countEventsForLevel​(ch.qos.logback.classic.Level level)
        Count log messages at a particular level
      • layoutSearch

        public java.util.List<java.lang.String> layoutSearch​(java.lang.String string,
                                                             ch.qos.logback.classic.Level level)
        Return laid out log messages at a particular level that contain a string
        Parameters:
        string - the string to look for
        level - the log level
        Returns:
        all log messages that satisfy the criteria
      • search

        public java.util.List<java.lang.String> search​(java.lang.String string,
                                                       ch.qos.logback.classic.Level level)
        Return log messages at a particular level that contain a string
        Parameters:
        string - the string to look for
        level - the log level
        Returns:
        all log messages that satisfy the criteria