bloritsch 2003/02/03 11:36:55
Modified: src/java/org/apache/log Hierarchy.java Logger.java
src/test/org/apache/log/test InheritanceTestCase.java
src/test/org/apache/log/util/test UtilTestCase.java
src/xdocs changes.xml
Log:
add LoggerListener hierarchy
Revision Changes Path
1.20 +53 -1 jakarta-avalon-logkit/src/java/org/apache/log/Hierarchy.java
Index: Hierarchy.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-logkit/src/java/org/apache/log/Hierarchy.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- Hierarchy.java 3 Feb 2003 17:40:12 -0000 1.19
+++ Hierarchy.java 3 Feb 2003 19:36:54 -0000 1.20
@@ -57,6 +57,7 @@
import org.apache.log.format.PatternFormatter;
import org.apache.log.output.io.StreamTarget;
import org.apache.log.util.DefaultErrorHandler;
+import org.apache.log.util.LoggerListener;
/**
* This class encapsulates a basic independent log hierarchy.
@@ -80,6 +81,9 @@
///The root logger which contains all Loggers in this hierarchy
private Logger m_rootLogger;
+ ///LoggerListener associated with hierarchy
+ private LoggerListener m_loggerListener;
+
/**
* Retrieve the default hierarchy.
*
@@ -103,7 +107,9 @@
public Hierarchy()
{
m_errorHandler = new DefaultErrorHandler();
- m_rootLogger = new Logger( new InnerErrorHandler(), "", null, null );
+ m_rootLogger = new Logger( new InnerErrorHandler(),
+ new InnerLoggerListener(),
+ "", null, null );
//Setup default output target to print to console
final PatternFormatter formatter = new PatternFormatter( FORMAT );
@@ -188,6 +194,16 @@
}
/**
+ * Set the LoggerListener associated with hierarchy.
+ *
+ * @param loggerListener the LoggerListener
+ */
+ public synchronized void setLoggerListener( final LoggerListener loggerListener
)
+ {
+ m_loggerListener = loggerListener;
+ }
+
+ /**
* Retrieve a logger for named category.
*
* @param category the context
@@ -221,6 +237,42 @@
public void log( final String message )
{
log( message, null );
+ }
+
+ /**
+ * Notify logger listener (if any) that a new logger was created.
+ *
+ * @param category the category of new logger
+ * @param logger the logger
+ */
+ private synchronized void notifyLoggerCreated( final String category,
+ final Logger logger )
+ {
+ if( null != m_loggerListener )
+ {
+ m_loggerListener.loggerCreated( category, logger );
+ }
+ }
+
+ /**
+ * Inner class to redirect to hierarchys real LoggerListener if any.
+ * Used so that all the loggers will not have to be updated
+ * when LoggerListener changes.
+ */
+ private class InnerLoggerListener
+ extends LoggerListener
+ {
+ /**
+ * Notify listener that a logger was created.
+ *
+ * @param category the category of logger
+ * @param logger the logger object
+ */
+ public void loggerCreated( final String category,
+ final Logger logger )
+ {
+ notifyLoggerCreated( category, logger );
+ }
}
private class InnerErrorHandler
1.34 +12 -1 jakarta-avalon-logkit/src/java/org/apache/log/Logger.java
Index: Logger.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-logkit/src/java/org/apache/log/Logger.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- Logger.java 3 Feb 2003 17:40:12 -0000 1.33
+++ Logger.java 3 Feb 2003 19:36:54 -0000 1.34
@@ -54,6 +54,8 @@
*/
package org.apache.log;
+import org.apache.log.util.LoggerListener;
+
/**
* The object interacted with by client objects to perform logging.
*
@@ -69,6 +71,9 @@
///The ErrorHandler associated with Logger
private final ErrorHandler m_errorHandler;
+ ///The ErrorHandler associated with Logger
+ private final LoggerListener m_loggerListener;
+
///Logger to inherit logtargets and priorities from
private final Logger m_parent;
@@ -106,11 +111,13 @@
* @param parent the parent logger (used for inheriting from)
*/
Logger( final ErrorHandler errorHandler,
+ final LoggerListener loggerListener,
final String category,
final LogTarget[] logTargets,
final Logger parent )
{
m_errorHandler = errorHandler;
+ m_loggerListener = loggerListener;
m_category = category;
m_logTargets = logTargets;
m_parent = parent;
@@ -545,12 +552,16 @@
}
//Create new logger
- final Logger child = new Logger( m_errorHandler, category, null, this );
+ final Logger child =
+ new Logger( m_errorHandler, m_loggerListener, category, null, this );
if( m_additivity )
{
child.setAdditivity( true );
}
+
+ m_loggerListener.loggerCreated( child.m_category, child );
+
//Add new logger to child list
if( null == m_children )
1.6 +0 -2
jakarta-avalon-logkit/src/test/org/apache/log/test/InheritanceTestCase.java
Index: InheritanceTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-logkit/src/test/org/apache/log/test/InheritanceTestCase.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- InheritanceTestCase.java 3 Feb 2003 17:40:17 -0000 1.5
+++ InheritanceTestCase.java 3 Feb 2003 19:36:54 -0000 1.6
@@ -71,8 +71,6 @@
public final class InheritanceTestCase
extends TestCase
{
- private final static String POSITIVE = "+1 Positive - yay - lets do the chicken
dance.";
-
private final static String PATTERN = "%{priority}-%{message}";
private final static PatternFormatter FORMATTER = new PatternFormatter( PATTERN
);
1.6 +1 -1
jakarta-avalon-logkit/src/test/org/apache/log/util/test/UtilTestCase.java
Index: UtilTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-logkit/src/test/org/apache/log/util/test/UtilTestCase.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- UtilTestCase.java 3 Feb 2003 17:40:17 -0000 1.5
+++ UtilTestCase.java 3 Feb 2003 19:36:54 -0000 1.6
@@ -77,7 +77,6 @@
private final static String MSG = "No soup for you!";
private final static String RMSG = MSG;
- private final static String METHOD_RESULT = UtilTestCase.class.getName() + ".";
public UtilTestCase( final String name )
{
@@ -95,6 +94,7 @@
throws Exception
{
/*
+ final String METHOD_RESULT = UtilTestCase.class.getName() + ".";
final ByteArrayOutputStream output = new ByteArrayOutputStream();
final StreamTarget target = new StreamTarget( output, METHOD_FORMATTER );
final Hierarchy hierarchy = new Hierarchy();
1.38 +3 -0 jakarta-avalon-logkit/src/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-logkit/src/xdocs/changes.xml,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- changes.xml 3 Feb 2003 19:07:29 -0000 1.37
+++ changes.xml 3 Feb 2003 19:36:55 -0000 1.38
@@ -12,6 +12,9 @@
<author email="shash_list at hotmail.com">Sash Chatterjee</author>
</devs>
<release version="1.2" date="?">
+ <action dev="PD" type="add">
+ Add LoggerListener support.
+ </action>
<action dev="SC" type="add">
Add support for any arbitrary logger wrapper class.
</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]