commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <simon.kitch...@xtra.co.nz>
Subject Re: [Commons-logging] Small patch to make debugging easier
Date Thu, 16 Nov 2006 00:27:51 GMT
Hi Lilianne,

Sorry for the slow response. This is definitely the right place to raise this issue.

It's on my list to have a look at your patch but I'm pretty busy just now. Maybe this weekend.

Logging is such a stable library now that not a whole lot of people have recent experience
in working on it, and so are reluctant to comment. In this case you just need to politely
post followups every week or so until someone decides to step up and take the job on.

As was suggested by another reply, it might be good to post this as a JIRA issue so it doesn't
get lost.

Regards,

Simon

---- "Lilianne E. Blaze" <lilianne_blaze@tlen.pl> wrote: 
> Why the complete lack of response?
> If something like that was in the code earlier, it would save me a good 
> couple of hours, so I believe it is useful enough to be included. I 
> can't be the only one who encountered this problem.
> 
> Or is it the wrong list?
> 
> Greetings, Lilianne E. Blaze
> 
> Lilianne E. Blaze wrote:
> > Hello,
> > During the last few days I had major problems trying to configure 
> > Commons-Logging + Log4j on Glassfish.
> > It turned out to be related to Log4j UDPAppender, but it took me 
> > needlessly long time to verify the problem was indeed in Log4j and not 
> > in Commons-Logging, Glassfish or something else. Now, why am I posting 
> > it here then - I made a small modification which logs Log4j failures 
> > more precisely, instead of just:
> >
> > [LogFactoryImpl@14810083 from 
> > org.apache.catalina.loader.WebappClassLoader@1904280] Could not 
> > instantiate Log 'org.apache.commons.logging.impl.Log4JLogger' -- 
> > java.lang.reflect.InvocationTargetException: null
> >
> > which explains, basically, nothing, you get for example:
> >
> > [LogFactoryImpl@14810083 from 
> > org.apache.catalina.loader.WebappClassLoader@1904280] Could not 
> > instantiate Log 'org.apache.commons.logging.impl.Log4JLogger' -- 
> > java.lang.reflect.InvocationTargetException: null
> > [LogFactoryImpl@14810083 from 
> > org.apache.catalina.loader.WebappClassLoader@1904280] ... 
> > InvocationTargetException: java.lang.ExceptionInInitializerError: null
> > [LogFactoryImpl@14810083 from 
> > org.apache.catalina.loader.WebappClassLoader@1904280] ... 
> > ExceptionInInitializerError: java.lang.IllegalStateException: Property 
> > layout must be set for UDPAppender named appenderLocalhostUdp
> >
> > which states clearly that Log4j was indeed loaded, and the problem was 
> > in its configuration.
> > All it does is expand those two exceptions if they occurred. It could 
> > be more general and more elegant, but this code should work in pre-1.4 
> > Java.
> >
> > Could you please include it in next build of Commons-Logging?
> >
> > Attaching the patch text below.
> >
> > Greetings, Lilianne E. Blaze
> >
> > Index: LogFactoryImpl.java
> > *** 
> > D:\Work\Projects\Apache\commons-logging-custom\src\org\apache\commons\logging\impl\LogFactoryImpl.java

> > Base (BASE)
> > --- 
> > D:\Work\Projects\Apache\commons-logging-custom\src\org\apache\commons\logging\impl\LogFactoryImpl.java

> > Locally Modified (Based On LOCAL)
> > ***************
> > *** 1362,1369 ****
> > --- 1362,1388 ----
> >                        + logAdapterClassName + "' -- "
> >                        + discoveryFlaw.getClass().getName() + ": "
> >                        + discoveryFlaw.getLocalizedMessage());
> > +            +             if ( discoveryFlaw instanceof 
> > InvocationTargetException ) {
> > +                 InvocationTargetException ite = 
> > (InvocationTargetException)discoveryFlaw;
> > +                 Throwable cause = ite.getTargetException();
> > +                 logDiagnostic("... InvocationTargetException: " +
> > +                         cause.getClass().getName() + ": " +
> > +                         cause.getLocalizedMessage());
> > +                +                 if( cause instanceof 
> > ExceptionInInitializerError ) {
> > +                     ExceptionInInitializerError eiie = 
> > (ExceptionInInitializerError)cause;
> > +                     Throwable cause2 = eiie.getException();
> > +                     logDiagnostic("... ExceptionInInitializerError: " +
> > +                             cause2.getClass().getName() + ": " +
> > +                             cause2.getLocalizedMessage());
> > +                                     }
> >                 +             }
> > +            +         }
> > +                 if (!allowFlawedDiscovery) {
> >              throw new LogConfigurationException(discoveryFlaw);
> >          }
> >
> > Index: Log4JLogger.java
> > *** 
> > D:\Work\Projects\Apache\commons-logging-custom\src\org\apache\commons\logging\impl\Log4JLogger.java

> > Base (BASE)
> > --- 
> > D:\Work\Projects\Apache\commons-logging-custom\src\org\apache\commons\logging\impl\Log4JLogger.java

> > Locally Modified (Based On LOCAL)
> > ***************
> > *** 77,84 ****
> > --- 77,86 ----
> >      // ------------------------------------------------------------
> >
> >      static {
> > +
> >          if (!Priority.class.isAssignableFrom(Level.class)) {
> >              // nope, this is log4j 1.3, so force an 
> > ExceptionInInitializerError
> > +             // note - it still works with log4j 1.3.8-alpha
> >              throw new InstantiationError("Log4J 1.2 not available");
> >          }
> >         ***************
> > *** 112,117 ****
> > --- 114,124 ----
> >      /** For use with a log4j factory.
> >       */
> >      public Log4JLogger(Logger logger ) {
> > +      +         if( logger == null ) {
> > +             throw new IllegalArgumentException("Warning - logger == 
> > null, possible Log4j misconfiguration?");
> > +         }
> > +               this.name = logger.getName();
> >          this.logger=logger;
> >      }
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> >
> >
> >
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message