Class ClassLoaderLogManager


  • public class ClassLoaderLogManager
    extends java.util.logging.LogManager
    Per classloader LogManager implementation. For light debugging, set the system property org.apache.juli.ClassLoaderLogManager.debug=true. Short configuration information will be sent to System.err.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Map<java.lang.ClassLoader,​ClassLoaderLogManager.ClassLoaderLogInfo> classLoaderLoggers
      Map containing the classloader information, keyed per classloader.
      static java.lang.String DEBUG_PROPERTY  
      protected java.lang.ThreadLocal<java.lang.String> prefix
      This prefix is used to allow using prefixes for the properties names of handlers and their subcomponents.
      protected boolean useShutdownHook
      Determines if the shutdown hook is used to perform any necessary clean-up such as flushing buffered handlers on JVM shutdown.
      • Fields inherited from class java.util.logging.LogManager

        LOGGING_MXBEAN_NAME
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean addLogger​(java.util.logging.Logger logger)
      Add the specified logger to the classloader local configuration.
      protected static void doSetParentLogger​(java.util.logging.Logger logger, java.util.logging.Logger parent)
      Set parent child relationship between the two specified loggers.
      protected ClassLoaderLogManager.ClassLoaderLogInfo getClassLoaderInfo​(java.lang.ClassLoader classLoader)
      Retrieve the configuration associated with the specified classloader.
      java.util.logging.Logger getLogger​(java.lang.String name)
      Get the logger associated with the specified name inside the classloader local configuration.
      java.util.Enumeration<java.lang.String> getLoggerNames()
      Get an enumeration of the logger names currently defined in the classloader local configuration.
      java.lang.String getProperty​(java.lang.String name)
      Get the value of the specified property in the classloader local configuration.
      boolean isUseShutdownHook()  
      void readConfiguration()  
      void readConfiguration​(java.io.InputStream is)  
      protected void readConfiguration​(java.io.InputStream is, java.lang.ClassLoader classLoader)
      Load specified configuration.
      protected void readConfiguration​(java.lang.ClassLoader classLoader)
      Read configuration for the specified classloader.
      protected java.lang.String replace​(java.lang.String str)
      System property replacement in the given string.
      void reset()  
      void setUseShutdownHook​(boolean useShutdownHook)  
      void shutdown()
      Shuts down the logging system.
      • Methods inherited from class java.util.logging.LogManager

        addConfigurationListener, checkAccess, getLoggingMXBean, getLogManager, removeConfigurationListener, updateConfiguration, updateConfiguration
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEBUG_PROPERTY

        public static final java.lang.String DEBUG_PROPERTY
      • classLoaderLoggers

        protected final java.util.Map<java.lang.ClassLoader,​ClassLoaderLogManager.ClassLoaderLogInfo> classLoaderLoggers
        Map containing the classloader information, keyed per classloader. A weak hashmap is used to ensure no classloader reference is leaked from application redeployment.
      • prefix

        protected final java.lang.ThreadLocal<java.lang.String> prefix
        This prefix is used to allow using prefixes for the properties names of handlers and their subcomponents.
      • useShutdownHook

        protected volatile boolean useShutdownHook
        Determines if the shutdown hook is used to perform any necessary clean-up such as flushing buffered handlers on JVM shutdown. Defaults to true but may be set to false if another component ensures that shutdown() is called.
    • Constructor Detail

      • ClassLoaderLogManager

        public ClassLoaderLogManager()
    • Method Detail

      • isUseShutdownHook

        public boolean isUseShutdownHook()
      • setUseShutdownHook

        public void setUseShutdownHook​(boolean useShutdownHook)
      • addLogger

        public boolean addLogger​(java.util.logging.Logger logger)
        Add the specified logger to the classloader local configuration.
        Overrides:
        addLogger in class java.util.logging.LogManager
        Parameters:
        logger - The logger to be added
      • getLogger

        public java.util.logging.Logger getLogger​(java.lang.String name)
        Get the logger associated with the specified name inside the classloader local configuration. If this returns null, and the call originated for Logger.getLogger, a new logger with the specified name will be instantiated and added using addLogger.
        Overrides:
        getLogger in class java.util.logging.LogManager
        Parameters:
        name - The name of the logger to retrieve
      • getLoggerNames

        public java.util.Enumeration<java.lang.String> getLoggerNames()
        Get an enumeration of the logger names currently defined in the classloader local configuration.
        Overrides:
        getLoggerNames in class java.util.logging.LogManager
      • getProperty

        public java.lang.String getProperty​(java.lang.String name)
        Get the value of the specified property in the classloader local configuration.
        Overrides:
        getProperty in class java.util.logging.LogManager
        Parameters:
        name - The property name
      • readConfiguration

        public void readConfiguration()
                               throws java.io.IOException,
                                      java.lang.SecurityException
        Overrides:
        readConfiguration in class java.util.logging.LogManager
        Throws:
        java.io.IOException
        java.lang.SecurityException
      • readConfiguration

        public void readConfiguration​(java.io.InputStream is)
                               throws java.io.IOException,
                                      java.lang.SecurityException
        Overrides:
        readConfiguration in class java.util.logging.LogManager
        Throws:
        java.io.IOException
        java.lang.SecurityException
      • reset

        public void reset()
                   throws java.lang.SecurityException
        Overrides:
        reset in class java.util.logging.LogManager
        Throws:
        java.lang.SecurityException
      • shutdown

        public void shutdown()
        Shuts down the logging system.
      • getClassLoaderInfo

        protected ClassLoaderLogManager.ClassLoaderLogInfo getClassLoaderInfo​(java.lang.ClassLoader classLoader)
        Retrieve the configuration associated with the specified classloader. If it does not exist, it will be created. If no class loader is specified, the class loader used to load this class is used.
        Parameters:
        classLoader - The class loader for which we will retrieve or build the configuration
        Returns:
        the log configuration
      • readConfiguration

        protected void readConfiguration​(java.lang.ClassLoader classLoader)
                                  throws java.io.IOException
        Read configuration for the specified classloader.
        Parameters:
        classLoader - The classloader
        Throws:
        java.io.IOException - Error reading configuration
      • readConfiguration

        protected void readConfiguration​(java.io.InputStream is,
                                         java.lang.ClassLoader classLoader)
                                  throws java.io.IOException
        Load specified configuration.
        Parameters:
        is - InputStream to the properties file
        classLoader - for which the configuration will be loaded
        Throws:
        java.io.IOException - If something wrong happens during loading
      • doSetParentLogger

        protected static void doSetParentLogger​(java.util.logging.Logger logger,
                                                java.util.logging.Logger parent)
        Set parent child relationship between the two specified loggers.
        Parameters:
        logger - The logger
        parent - The parent logger
      • replace

        protected java.lang.String replace​(java.lang.String str)
        System property replacement in the given string.
        Parameters:
        str - The original string
        Returns:
        the modified string