You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2003/05/27 09:40:10 UTC
cvs commit: avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger LogKitLoggerManager.java
donaldp 2003/05/27 00:40:10
Modified: logger/src/java/org/apache/avalon/excalibur/logger
LogKitLoggerManager.java
Log:
Made disposable close the log targets
based on a patch by Mauro Talevi <ma...@aquilonia.org>
Revision Changes Path
1.16 +30 -4 avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/LogKitLoggerManager.java
Index: LogKitLoggerManager.java
===================================================================
RCS file: /home/cvs/avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/LogKitLoggerManager.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- LogKitLoggerManager.java 27 May 2003 07:30:27 -0000 1.15
+++ LogKitLoggerManager.java 27 May 2003 07:40:10 -0000 1.16
@@ -50,7 +50,11 @@
package org.apache.avalon.excalibur.logger;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
+import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -64,6 +68,7 @@
import org.apache.log.Hierarchy;
import org.apache.log.LogTarget;
import org.apache.log.Priority;
+import org.apache.log.util.Closeable;
/**
* LogKitLoggerManager implementation. It populates the LoggerManager
@@ -76,11 +81,14 @@
* @since 4.0
*/
public class LogKitLoggerManager
- implements LoggerManager, LogEnabled, Contextualizable, Configurable
+ implements LoggerManager, LogEnabled, Contextualizable, Configurable, Disposable
{
/** Map for name to logger mapping */
final private Map m_loggers = new HashMap();
+ /** Set of log targets */
+ final private Set m_targets = new HashSet();
+
/** The context object */
private Context m_context;
@@ -337,8 +345,8 @@
{
final String category = categories[ i ].getAttribute( "name" );
final String loglevel = categories[ i ].getAttribute( "log-level" ).toUpperCase();
- final boolean additive = categories[ i ].getAttributeAsBoolean( "additive",
- defaultAdditive );
+ final boolean additive = categories[ i ].
+ getAttributeAsBoolean( "additive", defaultAdditive );
final Configuration[] targets = categories[ i ].getChildren( "log-target" );
final LogTarget[] logTargets = new LogTarget[ targets.length ];
@@ -346,6 +354,10 @@
{
final String id = targets[ j ].getAttribute( "id-ref" );
logTargets[ j ] = targetManager.getLogTarget( id );
+ if( !m_targets.contains( logTargets[ j ] ) )
+ {
+ m_targets.add( logTargets[ j ] );
+ }
}
if( "".equals( category ) && logTargets.length > 0 )
@@ -371,6 +383,20 @@
{
setupLoggers( targetManager, fullCategory, subCategories, defaultAdditive );
}
+ }
+ }
+
+ public void dispose()
+ {
+ final Iterator iterator = m_targets.iterator();
+ while( iterator.hasNext() )
+ {
+ final LogTarget target = (LogTarget)iterator.next();
+ if( target instanceof Closeable )
+ {
+ ( (Closeable)target ).close();
+ }
+
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org