I'm not too sure of this commit. The problem is that AbstractSAXTransformer's
debug-level logging is so verbose that it swamps the debug logs of its children
with stuff like this:
DEBUG (/forrest/body-index.html): BEGIN endTransformingElement uri=, name=link,
raw=link)
DEBUG (/forrest/body-index.html): END endTransformingElement
DEBUG (/forrest/body-index.html): BEGIN endTransformingElement uri=, name=p, raw=p)
DEBUG (/forrest/body-index.html): END endTransformingElement
...
Simplest solution would be to just remove those debug() statements.
However, assuming these logs are useful to someone, I've added a flag to switch
them on/off (left on by default). The flag is declared 'final' and can be
switched off with the protected constructor added for this purpose.
Advice welcome.
--Jeff
On Wed, Jun 18, 2003 at 12:22:07PM -0000, [EMAIL PROTECTED] wrote:
> jefft 2003/06/18 05:22:07
>
> Modified: src/java/org/apache/cocoon/transformation
> AbstractSAXTransformer.java
> Log:
> Add a boolean field determining whether to log SAX events (primarily element
> start/endTransformingElement() calls). Occasionally these SAX logs are useful,
> but they are so numerous that they often render the 'debug' level useless for
> subclasses.
> Field is marked as final to aid the JVM in optimizing away the logs if set to
> false, and subclasses can set the field using a protected constructor.
>
> Revision Changes Path
> 1.3 +20 -4
> cocoon-2.1/src/java/org/apache/cocoon/transformation/AbstractSAXTransformer.java
>
> Index: AbstractSAXTransformer.java
> ===================================================================
> RCS file:
> /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/transformation/AbstractSAXTransformer.java,v
> retrieving revision 1.2
> retrieving revision 1.3
> diff -u -r1.2 -r1.3
> --- AbstractSAXTransformer.java 18 Jun 2003 12:11:07 -0000 1.2
> +++ AbstractSAXTransformer.java 18 Jun 2003 12:22:06 -0000 1.3
> @@ -201,6 +201,22 @@
> private List namespaces = new ArrayList(5);
>
> /**
> + * Whether to log SAX events for debugging. Defaults to true, and can be
> + * set to false by subclasses with a constructor.
> + * */
> + protected final boolean logSAXEvents;
> +
> + public AbstractSAXTransformer() {
> + this(true);
> + }
> +
> + /** @param logSAXEvents Whether to do a debug-level log for each processed
> + * element. */
> + protected AbstractSAXTransformer(final boolean logSAXEvents) {
> + this.logSAXEvents = logSAXEvents;
> + }
> +
> + /**
> * Avalon Configurable Interface
> */
> public void configure(Configuration configuration)
> @@ -683,11 +699,11 @@
> String raw,
> Attributes attr)
> throws ProcessingException, IOException, SAXException {
> - if (this.getLogger().isDebugEnabled()) {
> + if (this.logSAXEvents && this.getLogger().isDebugEnabled()) {
> this.getLogger().debug("BEGIN startTransformingElement uri=" + uri +
> ", name=" + name + ", raw=" + raw + ", attr=" + attr + ")");
> }
> if (this.ignoreEventsCount == 0) super.startElement(uri, name, raw, attr);
> - if (this.getLogger().isDebugEnabled()) {
> + if (this.logSAXEvents && this.getLogger().isDebugEnabled()) {
> this.getLogger().debug("END startTransformingElement");
> }
> }
> @@ -703,11 +719,11 @@
> String name,
> String raw)
> throws ProcessingException, IOException, SAXException {
> - if (this.getLogger().isDebugEnabled()) {
> + if (this.logSAXEvents && this.getLogger().isDebugEnabled()) {
> this.getLogger().debug("BEGIN endTransformingElement uri=" + uri + ",
> name=" + name + ", raw=" + raw + ")");
> }
> if (this.ignoreEventsCount == 0) super.endElement(uri, name, raw);
> - if (this.getLogger().isDebugEnabled()) {
> + if (this.logSAXEvents && this.getLogger().isDebugEnabled()) {
> this.getLogger().debug("END endTransformingElement");
> }
> }
>
>
>