1 8 package org.apache.avalon.phoenix.components.logger; 9 10 import org.apache.avalon.excalibur.i18n.ResourceManager; 11 import org.apache.avalon.excalibur.i18n.Resources; 12 import org.apache.avalon.excalibur.logger.LogKitLoggerManager; 13 import org.apache.avalon.excalibur.logger.LoggerManager; 14 import org.apache.avalon.framework.configuration.Configuration; 15 import org.apache.avalon.framework.container.ContainerUtil; 16 import org.apache.avalon.framework.context.DefaultContext; 17 import org.apache.avalon.framework.logger.AbstractLogEnabled; 18 import org.apache.avalon.framework.logger.Logger; 19 import org.apache.avalon.phoenix.BlockContext; 20 import org.apache.avalon.phoenix.interfaces.LogManager; 21 import org.apache.avalon.phoenix.metadata.SarMetaData; 22 23 28 public class DefaultLogManager 29 extends AbstractLogEnabled 30 implements LogManager 31 { 32 private static final Resources REZ = 33 ResourceManager.getPackageResources( SimpleLogKitManager.class ); 34 35 46 public Logger createHierarchy( final SarMetaData metaData, 47 final Configuration logs, 48 final ClassLoader classLoader ) 49 throws Exception 50 { 51 final String sarName = metaData.getName(); 52 53 final DefaultContext context = new DefaultContext(); 54 context.put( BlockContext.APP_NAME, sarName ); 55 context.put( BlockContext.APP_HOME_DIR, metaData.getHomeDirectory() ); 56 context.put( "classloader", classLoader ); 57 58 final String version = logs.getAttribute( "version", "1.0" ); 59 60 if( getLogger().isDebugEnabled() ) 61 { 62 final String message = 63 REZ.getString( "logger-create", sarName, version ); 64 getLogger().debug( message ); 65 } 66 final LoggerManager loggerManager = createLoggerManager( version ); 67 ContainerUtil.enableLogging( loggerManager, getLogger() ); 68 ContainerUtil.contextualize( loggerManager, context ); 69 ContainerUtil.configure( loggerManager, logs ); 70 return loggerManager.getDefaultLogger(); 71 } 72 73 private LoggerManager createLoggerManager( final String version ) 74 { 75 if( version.equals( "1.0" ) ) 76 { 77 return new SimpleLogKitManager(); 78 } 79 else if( version.equals( "1.1" ) ) 80 { 81 return new LogKitLoggerManager(); 82 } 83 else 84 { 85 final String message = "Unknown log version specification"; 86 throw new IllegalArgumentException ( message ); 87 } 88 } 89 } 90 | Popular Tags |