You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by at...@apache.org on 2003/06/11 15:32:06 UTC

cvs commit: avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/logkit LogKitConfHelper.java

atagunov    2003/06/11 06:32:06

  Modified:    logger/src/java/org/apache/avalon/excalibur/logger/logkit
                        LogKitConfHelper.java
  Log:
  working on providing better message in the exception (with path to source of configuration)
  
  Revision  Changes    Path
  1.3       +67 -67    avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/logkit/LogKitConfHelper.java
  
  Index: LogKitConfHelper.java
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/logkit/LogKitConfHelper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LogKitConfHelper.java	11 Jun 2003 12:07:12 -0000	1.2
  +++ LogKitConfHelper.java	11 Jun 2003 13:32:06 -0000	1.3
  @@ -138,10 +138,9 @@
           final LogTargetManager targetManager = setupTargetManager( targets, targetFactoryManager );
   
           final Configuration categories = configuration.getChild( "categories" );
  -        final Configuration[] category = categories.getChildren( "category" );
           setupLoggers( targetManager,
                         null,
  -                      category,
  +                      categories,
                         true,
                         categories.getAttributeAsBoolean( "additive", false ) );
       }
  @@ -207,90 +206,91 @@
        */
       private final void setupLoggers( final LogTargetManager targetManager,
                                        final String parentCategory,
  -                                     final Configuration[] categories,
  +                                     final Configuration parentElement,
                                        boolean root,
                                        final boolean defaultAdditive )
           throws ConfigurationException
       {
           boolean rootLoggerConfigured = false;
   
  -        for( int i = 0; i < categories.length; i++ )
  +        final Configuration[] categories = parentElement.getChildren( "category" );
  +
  +        if( null != categories )
           {
  -            final Configuration category = categories[ i ];
  -            final String name = category.getAttribute( "name" );
  -            final String loglevel = category.getAttribute( "log-level" ).toUpperCase();
  -            final boolean additive = category.
  -                getAttributeAsBoolean( "additive", defaultAdditive );
  -
  -            final Configuration[] targets = category.getChildren( "log-target" );
  -            final LogTarget[] logTargets = new LogTarget[ targets.length ];
  -            for( int j = 0; j < targets.length; j++ )
  +            for( int i = 0; i < categories.length; i++ )
               {
  -                final String id = targets[ j ].getAttribute( "id-ref" );
  -                logTargets[ j ] = targetManager.getLogTarget( id );
  -                if( !m_targets.contains( logTargets[ j ] ) )
  +                final Configuration category = categories[ i ];
  +                final String name = category.getAttribute( "name" );
  +                final String loglevel = category.getAttribute( "log-level" ).toUpperCase();
  +                final boolean additive = category.
  +                    getAttributeAsBoolean( "additive", defaultAdditive );
  +        
  +                final Configuration[] targets = category.getChildren( "log-target" );
  +                final LogTarget[] logTargets = new LogTarget[ targets.length ];
  +                for( int j = 0; j < targets.length; j++ )
                   {
  -                    m_targets.add( logTargets[ j ] );
  +                    final String id = targets[ j ].getAttribute( "id-ref" );
  +                    logTargets[ j ] = targetManager.getLogTarget( id );
  +                    if( !m_targets.contains( logTargets[ j ] ) )
  +                    {
  +                        m_targets.add( logTargets[ j ] );
  +                    }
                   }
  -            }
  -
  -            final String fullCategory;
  -            final org.apache.log.Logger logger;
  -
  -            if ( "".equals( name ) )
  -            {
  -                if ( !root )
  +        
  +                final String fullCategory;
  +                final org.apache.log.Logger logger;
  +        
  +                if ( "".equals( name ) )
                   {
  -                    final String message = "'category' element with empty name not " +
  -                            "at the root level: " + category.getLocation();
  -                    throw new ConfigurationException( message );
  +                    if ( !root )
  +                    {
  +                        final String message = "'category' element with empty name not " +
  +                                "at the root level: " + category.getLocation();
  +                        throw new ConfigurationException( message );
  +                    }
  +        
  +                    if ( logTargets.length == 0 )
  +                    {
  +                        final String message = "At least one log-target should be " +
  +                                "specified for the root category " + category.getLocation();
  +                        throw new ConfigurationException( message );
  +                    }
  +        
  +                    fullCategory = null;
  +                    logger = m_hierarchy.getRootLogger();
  +                    rootLoggerConfigured = true;
                   }
  -
  -                if ( logTargets.length == 0 )
  +                else
                   {
  -                    final String message = "At least one log-target should be " +
  -                            "specified for the root category " + category.getLocation();
  -                    throw new ConfigurationException( message );
  +                    fullCategory = LoggerUtil.getFullCategoryName( parentCategory, name );
  +                    logger = m_hierarchy.getLoggerFor( fullCategory );
                   }
  -
  -                fullCategory = null;
  -                logger = m_hierarchy.getRootLogger();
  -                rootLoggerConfigured = true;
  -            }
  -            else
  -            {
  -                fullCategory = LoggerUtil.getFullCategoryName( parentCategory, name );
  -                logger = m_hierarchy.getLoggerFor( fullCategory );
  -            }
  -
  -            if( getLogger().isDebugEnabled() )
  -            {
  -                /**
  -                 * We have to identify ourselves now via 'LogKitConfHelper:'
  -                 * because we are likely to be logging to a shared bootstrap
  -                 * logger, not to a dedicated category Logger.
  -                 */
  -                final String message = "LogKitConfHelper: adding logger for category '" +
  -                        ( fullCategory != null ? fullCategory : "" ) + "'";
  -                getLogger().debug( message );
  -            }
  -
  -            logger.setPriority( Priority.getPriorityForName( loglevel ) );
  -            logger.setLogTargets( logTargets );
  -            logger.setAdditivity( additive );
  -
  -            final Configuration[] subCategories = category.getChildren( "category" );
  -            if( null != subCategories )
  -            {
  -                setupLoggers( targetManager, fullCategory, subCategories, false, defaultAdditive );
  +        
  +                if( getLogger().isDebugEnabled() )
  +                {
  +                    /**
  +                     * We have to identify ourselves now via 'LogKitConfHelper:'
  +                     * because we are likely to be logging to a shared bootstrap
  +                     * logger, not to a dedicated category Logger.
  +                     */
  +                    final String message = "LogKitConfHelper: adding logger for category '" +
  +                            ( fullCategory != null ? fullCategory : "" ) + "'";
  +                    getLogger().debug( message );
  +                }
  +        
  +                logger.setPriority( Priority.getPriorityForName( loglevel ) );
  +                logger.setLogTargets( logTargets );
  +                logger.setAdditivity( additive );
  +        
  +                setupLoggers( targetManager, fullCategory, category, false, defaultAdditive );
               }
           }
   
           if ( root && !rootLoggerConfigured )
           {
               final String message = 
  -                    "No configuration for root category (<category name=''/>) found.";
  -
  +                    "No configuration for root category (<category name=''/>) found in "+
  +                            parentElement.getLocation();
               throw new ConfigurationException( message );
           }
       }
  
  
  

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