java.lang.Object
org.springframework.geode.logging.slf4j.logback.support.LogbackSupport

public abstract class LogbackSupport extends Object
Abstract utility class containing functionality for invoking SLF4J and Logback APIs.
Since:
1.3.0
See Also:
  • ILoggerFactory
  • Logger
  • LoggerFactory
  • LoggerContext
  • Appender
  • Field Details

    • slf4jLoggerToLogbackLoggerConverter

      protected static final Function<org.slf4j.Logger,Optional<ch.qos.logback.classic.Logger>> slf4jLoggerToLogbackLoggerConverter
    • CONSOLE_APPENDER_NAME

      protected static final String CONSOLE_APPENDER_NAME
      See Also:
    • DELEGATE_APPENDER_NAME

      protected static final String DELEGATE_APPENDER_NAME
      See Also:
    • ILLEGAL_LOGGER_TYPE_EXCEPTION_MESSAGE

      protected static final String ILLEGAL_LOGGER_TYPE_EXCEPTION_MESSAGE
      See Also:
    • ROOT_LOGGER_NAME

      protected static final String ROOT_LOGGER_NAME
      See Also:
    • SPRING_BOOT_LOGGING_SYSTEM_CLASS_NAME

      protected static final String SPRING_BOOT_LOGGING_SYSTEM_CLASS_NAME
      See Also:
    • UNRESOLVABLE_APPENDER_EXCEPTION_MESSAGE

      protected static final String UNRESOLVABLE_APPENDER_EXCEPTION_MESSAGE
      See Also:
  • Constructor Details

    • LogbackSupport

      public LogbackSupport()
  • Method Details

    • suppressSpringBootLogbackInitialization

      public static void suppressSpringBootLogbackInitialization()
      Disables Spring Boot's logging initialization, auto-configuration.
    • stopLogback

      public static void stopLogback()
      Properly stops Logback classic.
      See Also:
    • resetLogback

      public static void resetLogback()
      Resets the state of the SLF4J Logback logging provider and system.
    • resolveLoggerContext

      public static Optional<ch.qos.logback.classic.LoggerContext> resolveLoggerContext()
      Resolves the SLF4J, Logback LoggerContext. If the LoggerContext could not be resolve then the returned Optional will be empty.
      Returns:
      an Optional LoggerContext.
      See Also:
      • LoggerContext
    • requireLoggerContext

      public static ch.qos.logback.classic.LoggerContext requireLoggerContext()
      Requires a LoggerContext otherwise throws an IllegalStateException.
      Returns:
      the required LoggerContext.
      Throws:
      IllegalStateException - if the LoggerContext could not be resolved.
      See Also:
    • resolveRootLogger

      public static Optional<org.slf4j.Logger> resolveRootLogger()
      Resolves the Root Logger.
      Returns:
      an Optional Logger for the logging provider's ROOT Logger.
      See Also:
      • Logger
    • requireLogbackRootLogger

      public static ch.qos.logback.classic.Logger requireLogbackRootLogger()
      Requires the SLF4J Logback ROOT Logger otherwise throws an IllegalStateException.
      Returns:
      the configured SLF4J Logback ROOT Logger.
      Throws:
      IllegalStateException - if the SLF4J Logback ROOT Logger could not be resolved or the ROOT Logger is not a SLF4J Logback ROOT Logger.
      See Also:
    • resolveAppender

      public static <E, T extends ch.qos.logback.core.Appender<E>> Optional<T> resolveAppender(ch.qos.logback.classic.Logger logger, String appenderName, Class<T> appenderType)
      Finds an Appender with the given name from the given Logger.
      Type Parameters:
      T - type of the Appender.
      E - type of the logging event.
      Parameters:
      logger - SLF4J Logger from which to resolve the Appender.
      appenderName - a String containing the name of the Appender to resolve.
      appenderType - required type of the Appender to resolve.
      Returns:
      an Optional Appender with the given name from the Logger.
      See Also:
    • requireAppender

      public static <E, T extends ch.qos.logback.core.Appender<E>> T requireAppender(ch.qos.logback.classic.Logger logger, String appenderName, Class<T> appenderType)
      Requires an Appender with the given name having the specified type from the given Logger.
      Type Parameters:
      T - type of the Appender.
      E - type of the Objects processed by the Appender.
      Parameters:
      logger - Logger from which to resolve the Appender.
      appenderName - String containing the name of the Appender.
      appenderType - required type of the Appender.
      Returns:
      the resolved Appender.
      Throws:
      IllegalStateException - if an Appender with name and required type could not be resolved from the given Logger.
      See Also:
      • Logger
      • Appender
    • addAppender

      public static boolean addAppender(ch.qos.logback.classic.Logger logger, ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> appender)
      Adds the given Appender to the given Logger.
      Parameters:
      logger - Logger to add the Appender to.
      appender - Appender to add to the Logger.
      Returns:
      a boolean value indicating whether the Appender was successfully added to the Logger.
      See Also:
      • Logger
      • Appender
    • removeAppender

      public static boolean removeAppender(ch.qos.logback.classic.Logger logger, String appenderName)
      Removes the Appender with the specified name from the given Logger.
      Parameters:
      logger - Logger from which to remove the Appender.
      appenderName - name of the Appender to remove from the Logger.
      Returns:
      a boolean value indicating whether the targeted Appender was removed from the given Logger.
      See Also:
      • Logger
      • Appender
    • removeConsoleAppender

      public static boolean removeConsoleAppender(ch.qos.logback.classic.Logger logger)
      Removes the console Appender from the given Logger.
      Parameters:
      logger - Logger from which to remove the console Appender.
      Returns:
      true if the console Appender was registered with and successfully remove from the given Logger.
      See Also:
    • removeDelegateAppender

      public static boolean removeDelegateAppender(ch.qos.logback.classic.Logger logger)
      Removes the delegate Appender from the given Logger.
      Parameters:
      logger - Logger from which to remove the delegate Appender.
      Returns:
      true if the delegate Appender was registered with and successfully remove from the given Logger.
      See Also:
    • toLogbackLogger

      public static Optional<ch.qos.logback.classic.Logger> toLogbackLogger(org.slf4j.Logger logger)
      Converts an SLF4J Logger to a Logback Logger.
      Parameters:
      logger - SLF4J Logger to convert.
      Returns:
      an Optional Logback Logger for the given SLF4J Logger iff the SLF4J Logger is not-null and is a Logback Logger.
      See Also: