1
0

Added contents section. Improved readability of custom implementation prose. Speiling fixes. Thanks to Simon Kitching for spotting incongruent grammar by I.

git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@385047 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Burrell Donkin
2006-03-11 10:22:36 +00:00
parent 1b10d09a00
commit a5b7839fec

View File

@@ -26,6 +26,12 @@
</properties> </properties>
<body> <body>
<section name='Contents'>
<ul>
<li><a href='#Using%20JCL%20Diagnostics'>Using JCL Diagnostics</a></li>
<li><a href='#Containers%20With%20Custom%20LogFactory%20Implementations'>Containers With Custom LogFactory Implementations</a></li>
</ul>
</section>
<section name='Using JCL Diagnostics'> <section name='Using JCL Diagnostics'>
<p> <p>
Diagnostics is a feature introduced in JCL 1.1 as an aid to debugging problems Diagnostics is a feature introduced in JCL 1.1 as an aid to debugging problems
@@ -210,15 +216,15 @@ classloader used to load <code>LogFactory</code> and to the TCCL.
<section name='Containers With Custom LogFactory Implementations'> <section name='Containers With Custom LogFactory Implementations'>
<p> <p>
Some containers use a custom <code>LogFactory</code> implementation to adapt JCL to their particular Some containers use a custom <code>LogFactory</code> implementation to adapt JCL to their particular
logging system. This has some important consequences for deploying applications using JCL within these logging system. This has some important consequences for the deployment of applications using JCL within
containers. these containers.
</p> </p>
<p> <p>
Containers known to use this mechanism: Containers known to use this mechanism:
</p> </p>
<ul> <ul>
<li><a href='http://www.ibm.com/software/websphere/'>WebSphere Application Server</a> from <li><a href='http://www.ibm.com/software/websphere/'>WebSphere Application Server</a> from
<a href='http://www.ibm.com/software/websphere/'>IBM</a> versions 5 and 6.</li> <a href='http://www.ibm.com/software/websphere/'>IBM</a> (versions 5 and 6).</li>
</ul> </ul>
<p> <p>
Containers suspected to use this mechanism: Containers suspected to use this mechanism:
@@ -226,7 +232,12 @@ classloader used to load <code>LogFactory</code> and to the TCCL.
<ul> <ul>
<li><a href='http://www.macromedia.com/software/jrun/'>JRun</a> from <li><a href='http://www.macromedia.com/software/jrun/'>JRun</a> from
<a href='http://www.macromedia.com/'>Adobe Macromedia</a>.</li> <a href='http://www.macromedia.com/'>Adobe Macromedia</a>.</li>
</ul> <li>WebSphere Application Server (other versions).</li>
</ul>
<p>
The Jakarta Commons team would be grateful if reports were posted to the development list
of other containers using a custom implementation.
</p>
<subsection name='The Incompatible LogFactory Issue'> <subsection name='The Incompatible LogFactory Issue'>
<subsection name='Symptoms'> <subsection name='Symptoms'>
<p> <p>
@@ -276,7 +287,9 @@ The policy adopted by JCL in this situation is to re-throw this exception. Addit
is included in the message to help diagnosis. The reasoning behind this choice is that a is included in the message to help diagnosis. The reasoning behind this choice is that a
particular <code>LogFactory</code> implementation has been actively specified and this particular <code>LogFactory</code> implementation has been actively specified and this
choice should not be ignored. This policy has unfortunate consequences when running in choice should not be ignored. This policy has unfortunate consequences when running in
containers which have custom implementations: the above runtime exception will be thrown. containers which have custom implementations: the above runtime exception may be thrown
under certain classloading policies without the user knowingly specifying a custom
implementation.
</p> </p>
</subsection> </subsection>
<subsection name='Fixes'> <subsection name='Fixes'>
@@ -284,8 +297,13 @@ containers which have custom implementations: the above runtime exception will b
There are various ways to fix this problem. Which fix is right depends on the circumstances. There are various ways to fix this problem. Which fix is right depends on the circumstances.
</p> </p>
<p> <p>
If you are happy using another classloading policy for the application, select a
classloading policy which ensures that <code>LogFactory</code> will be loaded from the
shared classloader containing the custom implementation.
</p>
<p>
If you want to bypass the container adaption mechanism then set the appropriate system property If you want to bypass the container adaption mechanism then set the appropriate system property
to it's default value when the container is started: to the default value when the container is started:
</p> </p>
<code><pre> <code><pre>
-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl -Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl