Class LogbackLogBackend

java.lang.Object
org.apache.juneau.rest.server.management.logging.LogbackLogBackend
All Implemented Interfaces:
LogBackend

public class LogbackLogBackend extends Object implements LogBackend
LogBackend adapter for Logback (the SLF4J native backend), for use behind the /loggers management endpoint.

Drives the concrete Logback LoggerContext — not SLF4J the facade. Register it explicitly:

@Bean public LoggersSettings loggersSettings() { return LoggersSettings.create().enableWrite().backend(new LogbackLogBackend()).build(); }

Level mapping

Levels are Logback level names ("TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF"). Reads report each logger's configured level (the level set on the logger itself, or the empty string when it inherits from an ancestor). Sets are process-lifetime-only (Logger.setLevel(...)); the root logger is addressed as "ROOT".

Since:
10.0.0
  • Constructor Details

    • LogbackLogBackend

      Constructor using the SLF4J-bound Logback LoggerContext.
      Throws:
      IllegalStateException - If the bound SLF4J backend is not Logback.
    • LogbackLogBackend

      public LogbackLogBackend(ch.qos.logback.classic.LoggerContext context)
      Constructor with an explicit LoggerContext (for tests / multi-context setups).
      Parameters:
      context - The Logback logger context. Must not be null.
  • Method Details

    • getLevels

      Description copied from interface: LogBackend
      Returns a snapshot of all known loggers and their configured levels.
      Specified by:
      getLevels in interface LogBackend
      Returns:
      A sorted map of logger name → configured level name (empty string = inherited from an ancestor). The root logger is keyed "ROOT". Never null.
    • getLevel

      public String getLevel(String name)
      Description copied from interface: LogBackend
      Returns the configured level of a single logger.
      Specified by:
      getLevel in interface LogBackend
      Parameters:
      name - The logger name ("ROOT" or empty for the root logger).
      Returns:
      The configured level name, the empty string if the level is inherited, or null if no such logger is currently registered.
    • setLevel

      public void setLevel(String name, String level)
      Description copied from interface: LogBackend
      Sets (or clears) the level of a single logger at runtime (process-lifetime-only).
      Specified by:
      setLevel in interface LogBackend
      Parameters:
      name - The logger name ("ROOT" or empty for the root logger).
      level - The backend-native level name, or null/blank to clear the logger's own level so it inherits from its ancestor.