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 2003/04/15 04:51:17 UTC
cvs commit: avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/logging DefaultLoggingManager.java
mcconnell 2003/04/14 19:51:17
Modified: merlin/assembly/src/java/org/apache/avalon/assembly/logging
DefaultLoggingManager.java
Log:
The logging manager has ben extended to include support for the explicit declaration of a system logging root category and operations enabaling the creation of system sub-categories for components constructed by Merlin that are internal to the Merlin system.
Revision Changes Path
1.3 +43 -2 avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/logging/DefaultLoggingManager.java
Index: DefaultLoggingManager.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/logging/DefaultLoggingManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultLoggingManager.java 11 Apr 2003 20:19:38 -0000 1.2
+++ DefaultLoggingManager.java 15 Apr 2003 02:51:16 -0000 1.3
@@ -127,7 +127,7 @@
private Hierarchy m_logHierarchy;
/**
- * The efault logging channel.
+ * The default logging channel.
*/
private org.apache.avalon.framework.logger.Logger m_logger;
@@ -136,6 +136,8 @@
*/
private final HashMap m_targets = new HashMap();
+ private String m_system = SYSTEM_CATEGORY_DEFAULT;
+
//==============================================================
// Contextualizable
//==============================================================
@@ -149,6 +151,16 @@
public void contextualize( Locator context ) throws ContextException
{
m_baseDirectory = (File) context.get( "urn:assembly:home" );
+ if( context.hasEntry( SYSTEM_CATEGORY_KEY ) )
+ {
+ m_system = (String) context.get( SYSTEM_CATEGORY_KEY );
+ if( m_system.startsWith( "/" ) || m_system.startsWith( "." ) )
+ {
+ final String error =
+ "Invalid system category - cannot start with '.' or '/' character.";
+ throw new IllegalArgumentException( error );
+ }
+ }
try
{
@@ -163,7 +175,7 @@
}
//===============================================================
- // Initilizable
+ // Initializable
//===============================================================
/**
@@ -272,6 +284,35 @@
}
}
+ /**
+ * Add a set of category entries relative to the system category
+ * using the supplied descriptor as the definition of subcategories.
+ * @param path the category base path
+ * @param descriptor a set of category descriptors to be added under
+ * the system path
+ */
+ public void addSystemCategories( String path, LoggingDirective descriptor )
+ {
+ final String category = convertToSystem( path );
+ addCategories( category, descriptor );
+ }
+
+ /**
+ * Create a system logging channel.
+ *
+ * @param path the category path
+ * @return the logging channel
+ */
+ public org.apache.avalon.framework.logger.Logger getSystemLoggerForCategory( final String path )
+ {
+ final String category = convertToSystem( path );
+ return getLoggerForCategory( category );
+ }
+
+ private String convertToSystem( String path )
+ {
+ return m_system + "." + filter( path );
+ }
/**
* Create a logging channel configured with the supplied category path,
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org