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 14:07:12 UTC

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

atagunov    2003/06/11 05:07:12

  Modified:    logger/src/java/org/apache/avalon/excalibur/logger/decorator
                        LogToSelfDecorator.java
               logger/src/java/org/apache/avalon/excalibur/logger/log4j
                        Log4JAdapter.java
               logger/src/java/org/apache/avalon/excalibur/logger/logkit
                        LogKitAdapter.java LogKitConfHelper.java
  Log:
  Little fixes to messages output.
  
  Also a fix to how LogKitConfHelper configures
  LogKit Hierarchy().
  
  If Log4ConfHelper does not survive should port
  them back to LogKitLoggerManager I beleive
  
  Revision  Changes    Path
  1.2       +11 -2     avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/decorator/LogToSelfDecorator.java
  
  Index: LogToSelfDecorator.java
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/decorator/LogToSelfDecorator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LogToSelfDecorator.java	11 Jun 2003 10:52:10 -0000	1.1
  +++ LogToSelfDecorator.java	11 Jun 2003 12:07:12 -0000	1.2
  @@ -147,7 +147,12 @@
           final Logger preferred = m_loggerManager.getLoggerForCategory( m_switchTo );
           if ( m_logger.isDebugEnabled() )
           {
  -            final String message = "LoggerManager: switching logging to '" + 
  +            /**
  +             * We have to identify ourselves now via 'LogToSelfDecorator:'
  +             * because we are likely to be logging to a shared bootstrap
  +             * logger, not to a dedicated category Logger.
  +             */
  +            final String message = "LogToSelfDecorator: switching logging to '" + 
                       m_switchTo + "'";
               m_logger.debug( message );
           }
  @@ -156,7 +161,11 @@
   
           if ( m_logger.isDebugEnabled() )
           {
  -            final String message = "LoggerManager: have switched logging to '" + 
  +            /**
  +             * We do not have to identify ourselves now, we're already logging
  +             * to a proper category.
  +             */
  +            final String message = "Have switched logging to '" + 
                       m_switchTo + "'";
               m_logger.debug( message );
           }
  
  
  
  1.2       +11 -2     avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/log4j/Log4JAdapter.java
  
  Index: Log4JAdapter.java
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/log4j/Log4JAdapter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Log4JAdapter.java	11 Jun 2003 10:52:10 -0000	1.1
  +++ Log4JAdapter.java	11 Jun 2003 12:07:12 -0000	1.2
  @@ -78,10 +78,19 @@
   
       /**
        * Return the Logger for the specified category.
  +     * Log4J probably won't like the "" category name 
  +     * so we shall better return its getRootLogger() instead.
        */
       public Logger getLoggerForCategory( final String categoryName )
       {
  -        return new Log4JLogger( m_hierarchy.getLogger( categoryName ) );
  +        if ( null == categoryName || categoryName.length() == 0 )
  +        {
  +            return getDefaultLogger();
  +        }
  +        else
  +        {
  +            return new Log4JLogger( m_hierarchy.getLogger( categoryName ) );
  +        }
       }
   
       /**
  @@ -90,6 +99,6 @@
        */
       public Logger getDefaultLogger()
       {
  -        return getLoggerForCategory( "" );
  +        return new Log4JLogger( m_hierarchy.getRootLogger() );
       }
   }
  
  
  
  1.2       +24 -1     avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/logkit/LogKitAdapter.java
  
  Index: LogKitAdapter.java
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/logkit/LogKitAdapter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LogKitAdapter.java	11 Jun 2003 10:52:11 -0000	1.1
  +++ LogKitAdapter.java	11 Jun 2003 12:07:12 -0000	1.2
  @@ -87,10 +87,33 @@
   
       /**
        * Return the Logger for the specified category.
  +     * <p>
  +     *
  +     * In LogKit getRootLogger() and getLoggerFor("")
  +     * unless the logger for category "" has been explicitly
  +     * configured return identically configured but different
  +     * loggers.
  +     *
  +     * <p>
  +     * Our LogKitConfHelper configures getRootLogger(), not getLoggerFor("").
  +     * We think this is a reasonable behaviour and expect that LogKit
  +     * Hierarchies configured by other means then LogKitConfHelper are
  +     * configured in the same way.
  +     * 
  +     * <p>
  +     * This justifies our decision to return getRootLogger() when given
  +     * "" category name.
        */
       public Logger getLoggerForCategory( final String categoryName )
       {
  -        return new LogKitLogger( m_hierarchy.getLoggerFor( categoryName ) );
  +        if ( categoryName == null || categoryName.length() == 0 )
  +        {
  +            return getDefaultLogger();
  +        }
  +        else
  +        {
  +            return new LogKitLogger( m_hierarchy.getLoggerFor( categoryName ) );
  +        }
       }
   
       /**
  
  
  
  1.2       +40 -26    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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LogKitConfHelper.java	11 Jun 2003 10:52:11 -0000	1.1
  +++ LogKitConfHelper.java	11 Jun 2003 12:07:12 -0000	1.2
  @@ -212,16 +212,17 @@
                                        final boolean defaultAdditive )
           throws ConfigurationException
       {
  -        boolean rootLoggerAlive = false;
  +        boolean rootLoggerConfigured = false;
   
           for( int i = 0; i < categories.length; i++ )
           {
  -            final String category = categories[ i ].getAttribute( "name" );
  -            final String loglevel = categories[ i ].getAttribute( "log-level" ).toUpperCase();
  -            final boolean additive = categories[ i ].
  +            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 = categories[ i ].getChildren( "log-target" );
  +            final Configuration[] targets = category.getChildren( "log-target" );
               final LogTarget[] logTargets = new LogTarget[ targets.length ];
               for( int j = 0; j < targets.length; j++ )
               {
  @@ -233,49 +234,62 @@
                   }
               }
   
  -            if( root && "".equals( category ) && logTargets.length > 0 )
  +            final String fullCategory;
  +            final org.apache.log.Logger logger;
  +
  +            if ( "".equals( name ) )
               {
  -                m_hierarchy.setDefaultPriority( Priority.getPriorityForName( loglevel ) );
  -                m_hierarchy.setDefaultLogTargets( logTargets );
  -                rootLoggerAlive = true;
  -            }
  +                if ( !root )
  +                {
  +                    final String message = "'category' element with empty name not " +
  +                            "at the root level: " + category.getLocation();
  +                    throw new ConfigurationException( message );
  +                }
   
  -            final String fullCategory = 
  -                    LoggerUtil.getFullCategoryName( parentCategory, category );
  +                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 );
  +                }
   
  -            final org.apache.log.Logger 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 here via 'LogKitConfHelper:'
  -                 * because we are likely be logging directly to a bootstrap
  -                 * logger and this logger has no categories.
  +                 * 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 + "'";
  +                        ( fullCategory != null ? fullCategory : "" ) + "'";
                   getLogger().debug( message );
               }
  +
               logger.setPriority( Priority.getPriorityForName( loglevel ) );
               logger.setLogTargets( logTargets );
               logger.setAdditivity( additive );
   
  -            final Configuration[] subCategories = categories[ i ].getChildren( "category" );
  +            final Configuration[] subCategories = category.getChildren( "category" );
               if( null != subCategories )
               {
                   setupLoggers( targetManager, fullCategory, subCategories, false, defaultAdditive );
               }
           }
   
  -        if ( root && !rootLoggerAlive )
  +        if ( root && !rootLoggerConfigured )
           {
  -            /**
  -             * We have to identify ourselves here via 'LogKitConfHelper:'
  -             * because we are likely be logging directly to a bootstrap
  -             * logger and this logger has no categories.
  -             */
  -            final String message = "LogKitConfHelper: " +
  -                    "No log targets configured for the root logger.";
  +            final String message = 
  +                    "No configuration for root category (<category name=''/>) found.";
   
               throw new ConfigurationException( message );
           }
  
  
  

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