|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.logging.log4j.core.selector.JNDIContextSelector
public class JNDIContextSelector
This class can be used to define a
custom logger repository. It makes use of the fact that in J2EE
environments, each web-application is guaranteed to have its own JNDI
context relative to the java:comp/env
context. In EJBs, each
enterprise bean (albeit not each application) has its own context relative
to the java:comp/env
context. An env-entry
in a
deployment descriptor provides the information to the JNDI context. Once the
env-entry
is set, a repository selector can query the JNDI
application context to look up the value of the entry. The logging context of
the web-application will depend on the value the env-entry. The JNDI context
which is looked up by this class is
java:comp/env/log4j/context-name
.
Here is an example of an env-entry
:
<env-entry>
<description>JNDI logging context name for this app</description>
<env-entry-name>log4j/context-name</env-entry-name>
<env-entry-value>aDistinctiveLoggingContextName</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
If multiple applications use the same logging context name, then they will share the same logging context.
You can also specify the URL for this context's configuration resource. This repository selector (ContextJNDISelector) will use this resource to automatically configure the log4j repository.
<env-entry> <description>URL for configuring log4j context</description> <env-entry-name>log4j/configuration-resource</env-entry-name> <env-entry-value>urlOfConfigrationResource</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
It usually good practice for configuration resources of distinct applications to have distinct names. However, if this is not possible Naming
Constructor Summary | |
---|---|
JNDIContextSelector()
|
Method Summary | |
---|---|
LoggerContext |
getContext(String fqcn,
ClassLoader loader,
boolean currentContext)
Returns the LoggerContext. |
List<LoggerContext> |
getLoggerContexts()
Returns a List of all the available LoggerContexts. |
LoggerContext |
locateContext(String name,
String configLocation)
Locate the LoggerContext with the specified name. |
protected static Object |
lookup(Context ctx,
String name)
|
void |
removeContext(LoggerContext context)
|
LoggerContext |
removeContext(String name)
Locate the LoggerContext with the specified name using the default configuration. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public JNDIContextSelector()
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 locateContext(String name, String configLocation)
NamedContextSelector
locateContext
in interface NamedContextSelector
name
- The LoggerContext name.configLocation
- The location of the configuration.
public void removeContext(LoggerContext context)
public LoggerContext removeContext(String name)
NamedContextSelector
removeContext
in interface NamedContextSelector
name
- The LoggerContext name.
public List<LoggerContext> getLoggerContexts()
ContextSelector
getLoggerContexts
in interface ContextSelector
protected static Object lookup(Context ctx, String name) throws NamingException
NamingException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |