Class LogbackRecorder

java.lang.Object
tech.jhipster.test.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 Details

    • DEFAULT_MUTE

      public static final boolean DEFAULT_MUTE
      Constant DEFAULT_MUTE=true
      See Also:
    • DEFAULT_LEVEL

      public static final String DEFAULT_LEVEL
      Constant DEFAULT_LEVEL="ALL"
      See Also:
    • LOGBACK_EXCEPTION_MESSAGE

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

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

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

    • forClass

      public static 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 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 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
    • play

      public List<LogbackRecorder.Event> play()
      Return all recorded events.
      Returns:
      all recorded events so far