You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2004/01/26 18:35:27 UTC

cvs commit: avalon/merlin/logging/logkit/impl/src/java/org/apache/avalon/logging/logkit LoggerParameter.java

mcconnell    2004/01/26 09:35:27

  Added:       merlin/logging/logkit/impl/src/java/org/apache/avalon/logging/logkit
                        LoggerParameter.java
  Log:
  Parameter class to construct a logger from a string containing a priority label such as "debug", "error", info", etc.
  
  Revision  Changes    Path
  1.1                  avalon/merlin/logging/logkit/impl/src/java/org/apache/avalon/logging/logkit/LoggerParameter.java
  
  Index: LoggerParameter.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.logging.logkit;
  
  import java.io.File;
  import java.net.URL;
  import java.lang.reflect.Constructor;
  import java.util.ArrayList;
  import java.util.StringTokenizer;
  
  import org.apache.avalon.framework.logger.Logger;
  import org.apache.avalon.framework.logger.ConsoleLogger;
  
  import org.apache.avalon.util.criteria.Parameter;
  import org.apache.avalon.util.criteria.CriteriaException;
  
  import org.apache.avalon.excalibur.i18n.ResourceManager;
  import org.apache.avalon.excalibur.i18n.Resources;
  
  /**
   * A parameter descriptor that supports transformation of a 
   * a string url or file to a configuration instance.
   * 
   * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
   * @version $Revision: 1.1 $
   */
  public class LoggerParameter extends Parameter
  {
      //--------------------------------------------------------------
      // static
      //--------------------------------------------------------------
  
      private static final Resources REZ =
        ResourceManager.getPackageResources( LoggerParameter.class );
  
      private static final int PRIORITY = ConsoleLogger.LEVEL_WARN;
  
      //--------------------------------------------------------------
      // constructors
      //--------------------------------------------------------------
  
     /**
      * Creation of a new logger parameter.  The parameter support
      * convertion of strings in the form "debug", "info", "warn", 
      * "error", "fatal" and "none" to an equivalent logger.
      *
      * @param key the parameter key
      * @param initial the default logger
      */
      public LoggerParameter( final String key, final Logger logger )
      {
          super( key, Logger.class, logger );
      }
  
     /**
      * Resolve a supplied string to a configuration
      * @param value the value to resolve
      * @exception CriteriaException if an error occurs
      */
      public Object resolve( Object value ) 
        throws CriteriaException
      {
          if( value == null )
          {
              return new ConsoleLogger( PRIORITY );
          }
          if( value instanceof Logger )
          {
              return value;
          }
          if( value instanceof String )
          {
              String priority = ((String)value).toLowerCase();
              if( priority.equals( "debug" ) )
              {
                  return new ConsoleLogger( ConsoleLogger.LEVEL_DEBUG );
              }
              else if( priority.equals( "info" ) )
              {
                  return new ConsoleLogger( ConsoleLogger.LEVEL_INFO );
              }
              else if( priority.equals( "warn" ) )
              {
                  return new ConsoleLogger( ConsoleLogger.LEVEL_WARN );
              }
              else if( priority.equals( "error" ) )
              {
                  return new ConsoleLogger( ConsoleLogger.LEVEL_ERROR );
              }
              else if( priority.equals( "fatal" ) )
              {
                  return new ConsoleLogger( ConsoleLogger.LEVEL_FATAL );
              }
              else if( priority.equals( "none" ) )
              {
                  return new ConsoleLogger( ConsoleLogger.LEVEL_DISABLED );
              }
          }
          final String error = 
            REZ.getString( 
              "parameter.unknown", 
              value.getClass().getName(), Logger.class.getName() );
          throw new CriteriaException( error );
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org