Class LoggingContextSelector

java.lang.Object
org.red5.logging.LoggingContextSelector
All Implemented Interfaces:
ch.qos.logback.classic.selector.ContextSelector

public class LoggingContextSelector extends Object implements ch.qos.logback.classic.selector.ContextSelector
A class that allows the LoggerFactory to access an web context based LoggerContext. Add this java option -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector
Author:
Paul Gregoire (mondain@gmail.com)
  • Field Details

    • lock

      private static final Semaphore lock
    • contextMap

      private static final ConcurrentMap<String,ch.qos.logback.classic.LoggerContext> contextMap
    • DEFAULT_CONTEXT

      private static ch.qos.logback.classic.LoggerContext DEFAULT_CONTEXT
    • threadLocal

      private final ThreadLocal<ch.qos.logback.classic.LoggerContext> threadLocal
    • contextConfigFile

      private volatile String contextConfigFile
    • KEY_APP_NAME

      public static final String KEY_APP_NAME
      See Also:
  • Constructor Details

    • LoggingContextSelector

      public LoggingContextSelector(ch.qos.logback.classic.LoggerContext context)
  • Method Details

    • getLoggerContext

      public ch.qos.logback.classic.LoggerContext getLoggerContext()
      Specified by:
      getLoggerContext in interface ch.qos.logback.classic.selector.ContextSelector
    • getLoggerContext

      public ch.qos.logback.classic.LoggerContext getLoggerContext(String contextName)
      Specified by:
      getLoggerContext in interface ch.qos.logback.classic.selector.ContextSelector
    • getLoggerContext

      public ch.qos.logback.classic.LoggerContext getLoggerContext(String contextName, URL url)
    • getDefaultLoggerContext

      public ch.qos.logback.classic.LoggerContext getDefaultLoggerContext()
      Specified by:
      getDefaultLoggerContext in interface ch.qos.logback.classic.selector.ContextSelector
    • attachLoggerContext

      public void attachLoggerContext(String contextName, ch.qos.logback.classic.LoggerContext loggerContext)
    • detachLoggerContext

      public ch.qos.logback.classic.LoggerContext detachLoggerContext(String contextName)
      Specified by:
      detachLoggerContext in interface ch.qos.logback.classic.selector.ContextSelector
    • getContextNames

      public List<String> getContextNames()
      Specified by:
      getContextNames in interface ch.qos.logback.classic.selector.ContextSelector
    • setContextConfigFile

      public void setContextConfigFile(String contextConfigFile)
    • getCount

      public int getCount()
      Returns the number of managed contexts Used for testing purposes
      Returns:
      the number of managed contexts
    • setLocalContext

      public void setLocalContext(ch.qos.logback.classic.LoggerContext context)
      These methods are used by the LoggerContextFilter. They provide a way to tell the selector which context to use, thus saving the cost of a JNDI call at each new request.
      Parameters:
      context - logging context
    • removeLocalContext

      public void removeLocalContext()