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>urlOfConfigurationResource</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