Class ContextClassLoaderLogContextSelector

  • All Implemented Interfaces:
    LogContextSelector

    public final class ContextClassLoaderLogContextSelector
    extends java.lang.Object
    implements LogContextSelector
    A log context selector which chooses a log context based on the thread context classloader.
    • Field Detail

      • REGISTER_LOG_CONTEXT_PERMISSION

        private static final java.security.Permission REGISTER_LOG_CONTEXT_PERMISSION
      • UNREGISTER_LOG_CONTEXT_PERMISSION

        private static final java.security.Permission UNREGISTER_LOG_CONTEXT_PERMISSION
      • contextMap

        private final java.util.concurrent.ConcurrentMap<java.lang.ClassLoader,​LogContext> contextMap
      • logContextAction

        private final java.security.PrivilegedAction<LogContext> logContextAction
    • Constructor Detail

      • ContextClassLoaderLogContextSelector

        public ContextClassLoaderLogContextSelector​(LogContextSelector defaultSelector)
        Construct a new instance. If no matching log context is found, the provided default selector is consulted.
        Parameters:
        defaultSelector - the selector to consult if no matching log context is found
      • ContextClassLoaderLogContextSelector

        public ContextClassLoaderLogContextSelector()
        Construct a new instance. If no matching log context is found, the system context is used.
    • Method Detail

      • registerLogContext

        public void registerLogContext​(java.lang.ClassLoader classLoader,
                                       LogContext logContext)
                                throws java.lang.IllegalArgumentException
        Register a class loader with a log context. This method requires the registerLogContext RuntimePermission.
        Parameters:
        classLoader - the classloader
        logContext - the log context
        Throws:
        java.lang.IllegalArgumentException - if the classloader is already associated with a log context
      • unregisterLogContext

        public boolean unregisterLogContext​(java.lang.ClassLoader classLoader,
                                            LogContext logContext)
        Unregister a class loader/log context association. This method requires the unregisterLogContext RuntimePermission.
        Parameters:
        classLoader - the classloader
        logContext - the log context
        Returns:
        true if the association exists and was removed, false otherwise