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");
>            }
>        }
>   
>   
>   

Reply via email to