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