org.apache.juli

## Class ClassLoaderLogManager

- java.lang.Object
- - java.util.logging.LogManager
  - - org.apache.juli.ClassLoaderLogManager

-     public class ClassLoaderLogManager
      extends 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`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `ClassLoaderLogManager.ClassLoaderLogInfo`
    `protected static class` | `ClassLoaderLogManager.LogNode`
    `protected static class` | `ClassLoaderLogManager.RootLogger` This class is needed to instantiate the root of each per classloader hierarchy.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Map<ClassLoader,ClassLoaderLogManager.ClassLoaderLogInfo>` | `classLoaderLoggers` Map containing the classloader information, keyed per classloader.
    `static String` | `DEBUG_PROPERTY`
    `protected ThreadLocal<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`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClassLoaderLogManager()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addLogger(Logger logger)` Add the specified logger to the classloader local configuration.
    `protected static void` | `doSetParentLogger(Logger logger, Logger parent)` Set parent child relationship between the two specified loggers.
    `protected ClassLoaderLogManager.ClassLoaderLogInfo` | `getClassLoaderInfo(ClassLoader classLoader)` Retrieve the configuration associated with the specified classloader.
    `Logger` | `getLogger(String name)` Get the logger associated with the specified name inside the classloader local configuration.
    `Enumeration<String>` | `getLoggerNames()` Get an enumeration of the logger names currently defined in the classloader local configuration.
    `String` | `getProperty(String name)` Get the value of the specified property in the classloader local configuration.
    `boolean` | `isUseShutdownHook()`
    `void` | `readConfiguration()`
    `protected void` | `readConfiguration(ClassLoader classLoader)` Read configuration for the specified classloader.
    `void` | `readConfiguration(InputStream is)`
    `protected void` | `readConfiguration(InputStream is, ClassLoader classLoader)` Load specified configuration.
    `protected String` | `replace(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

      `addPropertyChangeListener, checkAccess, getLoggingMXBean, getLogManager, removePropertyChangeListener`

    - ### 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 String DEBUG_PROPERTY

    - #### classLoaderLoggers

          protected final Map<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 ThreadLocal<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(Logger logger)

      Add the specified logger to the classloader local configuration.
      Overrides:
        `addLogger` in class `LogManager`
      Parameters:
        `logger` - The logger to be added

    - #### getLogger

          public Logger getLogger(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 `LogManager`
      Parameters:
        `name` - The name of the logger to retrieve

    - #### getLoggerNames

          public Enumeration<String> getLoggerNames()

      Get an enumeration of the logger names currently defined in the classloader local configuration.
      Overrides:
        `getLoggerNames` in class `LogManager`

    - #### getProperty

          public String getProperty(String name)

      Get the value of the specified property in the classloader local configuration.
      Overrides:
        `getProperty` in class `LogManager`
      Parameters:
        `name` - The property name

    - #### readConfiguration

          public void readConfiguration()
                                 throws IOException,
                                        SecurityException

      Overrides:
        `readConfiguration` in class `LogManager`
      Throws:
        `IOException`
        `SecurityException`

    - #### readConfiguration

          public void readConfiguration(InputStream is)
                                 throws IOException,
                                        SecurityException

      Overrides:
        `readConfiguration` in class `LogManager`
      Throws:
        `IOException`
        `SecurityException`

    - #### reset

          public void reset()
                     throws SecurityException

      Overrides:
        `reset` in class `LogManager`
      Throws:
        `SecurityException`

    - #### shutdown

          public void shutdown()

      Shuts down the logging system.

    - #### getClassLoaderInfo

          protected ClassLoaderLogManager.ClassLoaderLogInfo getClassLoaderInfo(ClassLoader classLoader)

      Retrieve the configuration associated with the specified classloader. If it does not exist, it will be created.
      Parameters:
        `classLoader` - The classloader for which we will retrieve or build the configuration
      Returns:
        the log configuration

    - #### readConfiguration

          protected void readConfiguration(ClassLoader classLoader)
                                    throws IOException

      Read configuration for the specified classloader.
      Parameters:
        `classLoader` - The classloader
      Throws:
        `IOException` - Error reading configuration

    - #### readConfiguration

          protected void readConfiguration(InputStream is,
                               ClassLoader classLoader)
                                    throws IOException

      Load specified configuration.
      Parameters:
        `is` - InputStream to the properties file
        `classLoader` - for which the configuration will be loaded
      Throws:
        `IOException` - If something wrong happens during loading

    - #### doSetParentLogger

          protected static void doSetParentLogger(Logger logger,
                               Logger parent)

      Set parent child relationship between the two specified loggers.
      Parameters:
        `logger` - The logger
        `parent` - The parent logger

    - #### replace

          protected String replace(String str)

      System property replacement in the given string.
      Parameters:
        `str` - The original string
      Returns:
        the modified string

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.