donaldp 2003/06/02 02:52:44
Modified: logger/src/java/org/apache/avalon/excalibur/logger
SimpleLogKitManager.java
Log:
Implement Disposable to close all opened log targets
Submitted By: Mauro Talevi <[EMAIL PROTECTED]>
Revision Changes Path
1.6 +23 -1
avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/SimpleLogKitManager.java
Index: SimpleLogKitManager.java
===================================================================
RCS file:
/home/cvs/avalon-excalibur/logger/src/java/org/apache/avalon/excalibur/logger/SimpleLogKitManager.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SimpleLogKitManager.java 2 Jun 2003 09:49:29 -0000 1.5
+++ SimpleLogKitManager.java 2 Jun 2003 09:52:44 -0000 1.6
@@ -52,6 +52,8 @@
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
+import java.util.Collection;
+import java.util.Iterator;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.configuration.Configurable;
@@ -63,10 +65,12 @@
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.AvalonFormatter;
import org.apache.avalon.framework.logger.LogKitLogger;
+import org.apache.avalon.framework.activity.Disposable;
import org.apache.log.Hierarchy;
import org.apache.log.LogTarget;
import org.apache.log.Logger;
import org.apache.log.Priority;
+import org.apache.log.util.Closeable;
import org.apache.log.output.io.FileTarget;
/**
@@ -79,7 +83,7 @@
*/
public class SimpleLogKitManager
extends AbstractLogEnabled
- implements LoggerManager, Contextualizable, Configurable
+ implements LoggerManager, Contextualizable, Configurable, Disposable
{
private static final Resources REZ =
ResourceManager.getPackageResources( SimpleLogKitManager.class );
@@ -106,6 +110,7 @@
*/
private org.apache.avalon.framework.logger.Logger m_logger =
new LogKitLogger( m_logkitLogger );
+ private Collection m_targets;
/**
* Contextualize the manager. Requires that the "app.home" entry
@@ -138,8 +143,25 @@
{
final Configuration[] targets = configuration.getChildren( "log-target" );
final HashMap targetSet = configureTargets( targets );
+ m_targets = targetSet.values();
final Configuration[] categories = configuration.getChildren( "category" );
configureCategories( categories, targetSet );
+ }
+
+ /**
+ * Close any closable log targets opened by LoggerManager.
+ */
+ public void dispose()
+ {
+ final Iterator iterator = m_targets.iterator();
+ while( iterator.hasNext() )
+ {
+ final LogTarget logTarget = (LogTarget)iterator.next();
+ if( logTarget instanceof Closeable )
+ {
+ ( (Closeable)logTarget ).close();
+ }
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]