Class LogbackRecorder


  • @ConditionalOnClass(ch.qos.logback.classic.LoggerContext.class)
    public class LogbackRecorder
    extends Object
    Utility, mainly for unit tests, to assert content written to logback. A classical usage would be the following.

    LogbackRecorder recorder = LogbackRecorder.forClass(TestedClass.class) .reset() .capture(Level.WARN.name()); // do something that logs List<LogbackRecorder.Event> events = recorder.release().play(); // perform assertions on the events

    • Field Detail

      • DEFAULT_MUTE

        public static final boolean DEFAULT_MUTE
        Constant DEFAULT_MUTE=true
        See Also:
        Constant Field Values
      • LOGBACK_EXCEPTION_MESSAGE

        public static final String LOGBACK_EXCEPTION_MESSAGE
        Constant LOGBACK_EXCEPTION_MESSAGE="Expected logback"
        See Also:
        Constant Field Values
      • CAPTURE_EXCEPTION_MESSAGE

        public static final String CAPTURE_EXCEPTION_MESSAGE
        Constant CAPTURE_EXCEPTION_MESSAGE="Already capturing"
        See Also:
        Constant Field Values
      • RELEASE_EXCEPTION_MESSAGE

        public static final String RELEASE_EXCEPTION_MESSAGE
        Constant RELEASE_EXCEPTION_MESSAGE="Not currently capturing"
        See Also:
        Constant Field Values
    • Method Detail

      • forClass

        public static final LogbackRecorder forClass​(Class<?> clazz)
        Create a recorder for a logback logger identified by the class name. Instances of a recorder are cached per logger. Make sure to reset it before starting capture.
        Parameters:
        clazz - class whose logger as its name
        Returns:
        the recorder for this class
      • forName

        public static final LogbackRecorder forName​(String name)
        Create a recorder for a logback logger identified by its name. Instances of a recorder are cached per logger. Make sure to reset it before starting capture.
        Parameters:
        name - the name of the logger
        Returns:
        the recorder for this class
      • forLogger

        public static final LogbackRecorder forLogger​(org.slf4j.Logger logger)
        Create a recorder for a logback logger. Instances of a recorder are cached per logger. Make sure to reset it before starting capture.
        Parameters:
        logger - the logger to record
        Returns:
        the recorder for this logger
      • reset

        public LogbackRecorder reset()
        Resets the logger by clearing everything that was recorded so far.
        Returns:
        this
      • capture

        public LogbackRecorder capture​(String level)
        Start capturing whatever is logged for this level of worse.
        Parameters:
        level - the level at which to start capturing
        Returns:
        this
      • release

        public LogbackRecorder release()
        Stop recording and detach from the logger.
        Returns:
        this