incubator-adffaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cosma Colanicchia" <cosma...@gmail.com>
Subject Re: Logging system used by Trinidad
Date Tue, 04 Jul 2006 08:41:15 GMT
Ok, I defined a listener in my web.xml and it works very well, thanks a lot!

Cosma


2006/7/4, Frank Felix Debatin <ffd@gmx.net>:
>
> Call JDKToCommonsLogging.activate() somewhere in your start
> up code, and deactivate() in your shutdown code.
>
> > -----Original Message-----
> > From: Cosma Colanicchia [mailto:cosmacol@gmail.com]
> > Sent: Tuesday, July 04, 2006 10:32 AM
> > To: adffaces-dev@incubator.apache.org
> > Subject: Re: Logging system used by Trinidad
> >
> > Thank you very much Frank, but this class has to be
> > "registered" somewhere?
> >
> >
> >
> > 2006/7/4, Frank Felix Debatin <ffd@gmx.net>:
> > >
> > > Hi Cosma,
> > >
> > > I worked around this by writing a simplistic log handler
>
> > that accepts
> > > JDK log messages and send them to commons logging.
> > >
> > > Feel free to use, below.
> > >
> > > Frank Felix
> > >
> > > _______________________
> > >
> > > package whatever;
> > >
> > > import java.util.Map;
> > > import java.util.concurrent.ConcurrentHashMap;
> > > import java.util.logging.*;
> > >
> > > import org.apache.commons.logging.Log; import
> > > org.apache.commons.logging.LogFactory;
> > >
> > > /**
> > > * Writes JDK log messages to commons logging.
> > > */
> > > public class JDKToCommonsLogging
> > > {
> > >     static JDKLogHandler activeHandler;
> > >
> > >     /**
> > >      * Activates this feature.
> > >      */
> > >     public static void activate()
> > >     {
> > >         try
> > >         {
> > >             Logger rootLogger =
> > > LogManager.getLogManager().getLogger("");
> > >             // remove old handlers
> > >             for (Handler handler:
> rootLogger.getHandlers())
> > >             {
> > >                 rootLogger.removeHandler(handler);
> > >             }
> > >             // add our own
> > >             activeHandler = new JDKLogHandler();
> > >             rootLogger.addHandler(activeHandler);
> > >             // done, let's check it right away!!!
> > >
> > > Logger.getLogger(JDKToCommonsLogging.class.getName())
> > >                 .info("activated: sending JDK log
> messages
> > to Commons
> > > Logging");
> > >         }
> > >         catch (Exception exc)
> > >         {
> > >             LogFactory.getLog(JDKToCommonsLogging.class)
> > >                 .error("activation failed", exc);
> > >         }
> > >     }
> > >
> > >     public static void deactivate()
> > >     {
> > >         Logger rootLogger =
> > > LogManager.getLogManager().getLogger("");
> > >         rootLogger.removeHandler(activeHandler);
> > >
> > > Logger.getLogger(JDKToCommonsLogging.class.getName())
> > >             .info("dactivated");
> > >     }
> > >
> > >     private static class JDKLogHandler extends Handler
> > >     {
> > >         private Map<String, Log> cachedLogs = new
> > > ConcurrentHashMap<String, Log>();
> > >
> > >         private Log getLog(String logName)
> > >         {
> > >             Log log = cachedLogs.get(logName);
> > >             if (log==null)
> > >             {
> > >                 log = LogFactory.getLog(logName);
> > >                 cachedLogs.put(logName, log);
> > >             }
> > >             return log;
> > >         }
> > >
> > >         @Override
> > >         public void publish(LogRecord record)
> > >         {
> > >             Log log = getLog(record.getLoggerName());
> > >             String message = record.getMessage();
> > >             Throwable exception = record.getThrown();
> > >             Level level = record.getLevel();
> > >             if (level==Level.SEVERE){
> > >                 log.error(message, exception);
> > >             } else if (level==Level.WARNING) {
> > >                 log.warn(message, exception);
> > >             } else if (level==Level.INFO) {
> > >                 log.info(message, exception);
> > >             } else if (level==Level.CONFIG) {
> > >                 log.debug(message, exception);
> > >             } else {
> > >                 log.trace(message, exception);
> > >             }
> > >         }
> > >
> > >         @Override
> > >         public void flush()
> > >         {
> > >            // nothing to do
> > >         }
> > >
> > >         @Override
> > >         public void close()
> > >         {
> > >             // nothing to do
> > >         }
> > >     }
> > > }
> > >
> > >
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message