org.apache.logging.log4j.core.selector
Class ClassLoaderContextSelector
java.lang.Object
org.apache.logging.log4j.core.selector.ClassLoaderContextSelector
- All Implemented Interfaces:
- ContextSelector
public class ClassLoaderContextSelector
- extends Object
- implements ContextSelector
This ContextSelector chooses a LoggerContext based upon the ClassLoader of the caller. This allows Loggers
assigned to static variables to be released along with the classes that own then. Other ContextSelectors
will generally cause Loggers associated with classes loaded from different ClassLoaders to be co-mingled.
This is a problem if, for example, a web application is undeployed as some of the Loggers being released may be
associated with a Class in a parent ClassLoader, which will generally have negative consequences.
The main downside to this ContextSelector is that Configuration is more challenging.
This ContextSelector should not be used with a Servlet Filter such as the JNDIContextFilter.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ClassLoaderContextSelector
public ClassLoaderContextSelector()
getContext
public LoggerContext getContext(String fqcn,
ClassLoader loader,
boolean currentContext)
- Description copied from interface:
ContextSelector
- Returns the LoggerContext.
- Specified by:
getContext
in interface ContextSelector
- Parameters:
fqcn
- The fully qualified class name of the caller.loader
- ClassLoader to use or null.currentContext
- If true returns the current Context, if false returns the Context appropriate
for the caller if a more appropriate Context can be determined.
- Returns:
- The LoggerContext.
removeContext
public void removeContext(LoggerContext context)
getLoggerContexts
public List<LoggerContext> getLoggerContexts()
- Description copied from interface:
ContextSelector
- Returns a List of all the available LoggerContexts.
- Specified by:
getLoggerContexts
in interface ContextSelector
- Returns:
- The List of LoggerContexts.
Copyright © 1999-2013 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.