Call JDKToCommonsLogging.activate() somewhere in your start up code, and deactivate() in your shutdown code.
> -----Original Message----- > From: Cosma Colanicchia [mailto:[EMAIL PROTECTED] > Sent: Tuesday, July 04, 2006 10:32 AM > To: [email protected] > 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 <[EMAIL PROTECTED]>: > > > > 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 > > } > > } > > } > > > > >
