|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.logging.log4j.core.selector.ClassLoaderContextSelector
public class ClassLoaderContextSelector
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 Log4jServletFilter.
Field Summary | |
---|---|
protected static ConcurrentMap<String,AtomicReference<WeakReference<LoggerContext>>> |
CONTEXT_MAP
|
protected static org.apache.logging.log4j.status.StatusLogger |
LOGGER
|
Constructor Summary | |
---|---|
ClassLoaderContextSelector()
|
Method Summary | |
---|---|
LoggerContext |
getContext(String fqcn,
ClassLoader loader,
boolean currentContext)
Returns the LoggerContext. |
LoggerContext |
getContext(String fqcn,
ClassLoader loader,
boolean currentContext,
URI configLocation)
Returns the LoggerContext. |
protected LoggerContext |
getDefault()
|
List<LoggerContext> |
getLoggerContexts()
Returns a List of all the available LoggerContexts. |
void |
removeContext(LoggerContext context)
Remove any references to the LoggerContext. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final org.apache.logging.log4j.status.StatusLogger LOGGER
protected static final ConcurrentMap<String,AtomicReference<WeakReference<LoggerContext>>> CONTEXT_MAP
Constructor Detail |
---|
public ClassLoaderContextSelector()
Method Detail |
---|
public LoggerContext getContext(String fqcn, ClassLoader loader, boolean currentContext)
ContextSelector
getContext
in interface ContextSelector
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.
public LoggerContext getContext(String fqcn, ClassLoader loader, boolean currentContext, URI configLocation)
ContextSelector
getContext
in interface ContextSelector
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.configLocation
- The location of the configuration for the LoggerContext.
public void removeContext(LoggerContext context)
ContextSelector
removeContext
in interface ContextSelector
context
- The context to remove.public List<LoggerContext> getLoggerContexts()
ContextSelector
getLoggerContexts
in interface ContextSelector
protected LoggerContext getDefault()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 1999-2015 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.