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 2002/11/10 01:35:31 UTC
cvs commit: jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler LogKit2LoggerTarget.java ComponentFactory.java
donaldp 2002/11/09 16:35:31
Modified: fortress/src/java/org/apache/excalibur/fortress/handler
ComponentFactory.java
Added: fortress/src/java/org/apache/excalibur/fortress/handler
LogKit2LoggerTarget.java
Log:
Support Loggable lifecycle interface as it seems some people are still using it ;(
Revision Changes Path
1.32 +29 -8 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ComponentFactory.java
Index: ComponentFactory.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ComponentFactory.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- ComponentFactory.java 9 Nov 2002 23:25:44 -0000 1.31
+++ ComponentFactory.java 10 Nov 2002 00:35:31 -0000 1.32
@@ -56,6 +56,7 @@
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.logger.LogEnabled;
import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.logger.Loggable;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceManager;
@@ -163,18 +164,38 @@
m_componentClass.getName() + "." );
}
- if( component instanceof LogEnabled )
+ if( component instanceof LogEnabled ||
+ component instanceof Loggable )
{
- final String logger = ( m_configuration == null ? null : m_configuration.getAttribute( "logger", null ) );
- if( null == logger )
+ Logger logger;
+ final String name = ( m_configuration == null ? null : m_configuration.getAttribute( "name", null ) );
+ if( null == name )
{
- if( m_logger.isDebugEnabled() ) m_logger.debug( "no logger attribute available, using standard logger" );
- ContainerUtil.enableLogging( component, m_logManager.getDefaultLogger() );
+ if( m_logger.isDebugEnabled() ) m_logger.debug( "no name attribute available, using standard name" );
+ logger = m_logManager.getDefaultLogger();
}
else
{
- if( m_logger.isDebugEnabled() ) m_logger.debug( "logger attribute is " + logger );
- ContainerUtil.enableLogging( component, m_logManager.getLoggerForCategory( logger ) );
+ if( m_logger.isDebugEnabled() ) m_logger.debug( "name attribute is " + name );
+ logger = m_logManager.getLoggerForCategory( name );
+ }
+
+ if( component instanceof LogEnabled )
+ {
+ ContainerUtil.enableLogging( component, logger );
+ }
+ else
+ {
+ final String message = "WARNING: " + m_componentClass.getName() +
+ " implements the Loggable lifecycle stage. This is " +
+ " a deprecated feature that will be removed in the future. " +
+ " Please upgrade to using LogEnabled.";
+ m_logger.warn( message );
+ System.out.println( message );
+
+ final org.apache.log.Logger logkitLogger =
+ LogKit2LoggerTarget.createLogger( logger );
+ ((Loggable)component).setLogger( logkitLogger );
}
}
1.1 jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/LogKit2LoggerTarget.java
Index: LogKit2LoggerTarget.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.fortress.handler;
import org.apache.avalon.framework.logger.Logger;
import org.apache.log.Hierarchy;
import org.apache.log.LogEvent;
import org.apache.log.LogTarget;
import org.apache.log.Priority;
/**
* A basic LogKit target that routes from LogKit to
* Avalon Logger.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2002/11/10 00:35:31 $
*/
class LogKit2LoggerTarget
implements LogTarget
{
private final Logger m_logger;
static org.apache.log.Logger createLogger( final Logger logger )
{
final Hierarchy hierarchy = new Hierarchy();
final org.apache.log.Logger logKitLogger = hierarchy.getLoggerFor( "" );
final LogKit2LoggerTarget target =
new LogKit2LoggerTarget( logger );
logKitLogger.setLogTargets( new LogTarget[ ] { target } );
return logKitLogger;
}
LogKit2LoggerTarget( final Logger logger )
{
if( null == logger )
{
throw new NullPointerException( "logger" );
}
m_logger = logger;
}
public void processEvent( LogEvent event )
{
final String message = event.getMessage();
final Throwable throwable = event.getThrowable();
final Priority priority = event.getPriority();
if( Priority.DEBUG == priority )
{
m_logger.debug( message, throwable );
}
else if( Priority.INFO == priority )
{
m_logger.info( message, throwable );
}
else if( Priority.WARN == priority )
{
m_logger.warn( message, throwable );
}
else if( Priority.ERROR == priority )
{
m_logger.error( message, throwable );
}
else
{
m_logger.fatalError( message, throwable );
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>