|
Log4j 1.3alpha-8 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.log4j.selector.ContextJNDISelector
Defines a unique logger repository for each web-application in a J2EE environment. This implementation is
based primarily on Ceki Gülcü's article
RepositorySelector
in Servlet ContainersBy default, the class static RepositorySelector
variable
of the LogManager
class is set to a trivial
implementation which always returns the same logger repository. a.k.a.
hierarchy. In other words, by default log4j will use one hierarchy, the
default hierarchy. This behavior can be overridden via
the RepositorySelector
LogManager
's
setRepositorySelector(RepositorySelector, Object)
method.
That is where this class enters the picture. It 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
Note that in case no configuration resource is specified, then there will be NO attempt to search for the default configuration files log4j.xml and log4j.properties. This voluntary omission ensures that the configuration file for your application's logger repository will not be confused with the default configuration file for the default logger repository.
Given that JNDI is part of the J2EE specification, the JNDI selector is the recommended context selector.
Constructor Summary | |
ContextJNDISelector()
public no-args constructor |
Method Summary | |
LoggerRepository |
detachRepository(String contextName)
Remove the repository with the given name from the list of known repositories. |
LoggerRepository |
getLoggerRepository()
Return the repoistory selector based on the current JNDI environment. |
LoggerRepository |
getLoggerRepository(String name)
Get the logger repository with the corresponding name. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ContextJNDISelector()
Method Detail |
public LoggerRepository getLoggerRepository()
getLoggerRepository
in interface RepositorySelector
public LoggerRepository getLoggerRepository(String name)
Returned value can be null if the selector is unaware of the repository with the given name.
public LoggerRepository detachRepository(String contextName)
|
Log4j 1.3alpha-8 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |