You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/11/10 01:52:09 UTC

cvs commit: jakarta-avalon/src/java/org/apache/avalon/framework/logger LogKit2AvalonLoggerAdapter.java

donaldp     2002/11/09 16:52:08

  Added:       src/java/org/apache/avalon/framework/logger
                        LogKit2AvalonLoggerAdapter.java
  Log:
  Add in adapter that adapts an Avalon Logger to a LogKit Logger
  
  Revision  Changes    Path
  1.1                  jakarta-avalon/src/java/org/apache/avalon/framework/logger/LogKit2AvalonLoggerAdapter.java
  
  Index: LogKit2AvalonLoggerAdapter.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.avalon.framework.logger;
  
  import org.apache.avalon.framework.logger.Logger;
  import org.apache.log.Hierarchy;
  import org.apache.log.LogEvent;
  import org.apache.log.LogTarget;
  import org.apache.log.Priority;
  
  /**
   * A basic adapter that adapts an Avalon Logger to a Logkit Logger.
   * Useful when providing backwards compatability support for Loggable
   * components.
   *
   * @author <a href="mailto:peter@apache.org">Peter Donald</a>
   * @version $Revision: 1.1 $ $Date: 2002/11/10 00:52:08 $
   */
  public final class LogKit2AvalonLoggerAdapter
      implements LogTarget
  {
      /**
       * The Avalon Logger that we re-route to.
       */
      private final Logger m_logger;
  
      /**
       * Create a Logkit {@link org.apache.log.Logger} instance that
       * redirects to an Avalon {@link org.apache.avalon.framework.logger.Logger} instance.
       *
       * @param logger the Avalon Logger
       * @return the LogKit Logger
       */
      public static org.apache.log.Logger createLogger( final Logger logger )
      {
          final Hierarchy hierarchy = new Hierarchy();
          final org.apache.log.Logger logKitLogger = hierarchy.getLoggerFor( "" );
          final LogKit2AvalonLoggerAdapter target =
              new LogKit2AvalonLoggerAdapter( logger );
          logKitLogger.setLogTargets( new LogTarget[ ] { target } );
          return logKitLogger;
      }
  
      /**
       * Private constructor to make an adaptor. Made private so that
       * it can not be used outisde of the above factory method.
       *
       * @param logger the avalon logger.
       */
      private LogKit2AvalonLoggerAdapter( final Logger logger )
      {
          if( null == logger )
          {
              throw new NullPointerException( "logger" );
          }
          m_logger = logger;
      }
  
      /**
       * Route a LogKit message to an avalon Logger.
       *
       * @param event the log message
       */
      public void processEvent( LogEvent event )
      {
          final String message = event.getMessage();
          final Throwable throwable = event.getThrowable();
          final Priority priority = event.getPriority();
          if( Priority.DEBUG == priority )
          {
              m_logger.debug( message, throwable );
          }
          else if( Priority.INFO == priority )
          {
              m_logger.info( message, throwable );
          }
          else if( Priority.WARN == priority )
          {
              m_logger.warn( message, throwable );
          }
          else if( Priority.ERROR == priority )
          {
              m_logger.error( message, throwable );
          }
          else
          {
              m_logger.fatalError( message, throwable );
          }
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>