extends AbstractCoreComponentInitializationPhase
{
public void initializeCoreComponent( ContainerInitializationContext context )
throws ContainerInitializationException
{
LoggerManager loggerManager = context.getContainer().getLoggerManager();
// ----------------------------------------------------------------------
// The logger manager may have been set programmatically so we need
// to check. If it hasn't then we will try to look up a logger manager
// that may have been specified in the plexus.xml file. If that doesn't
// work then we'll programmatcially stuff in the console logger.
// ----------------------------------------------------------------------
if ( loggerManager == null )
{
try
{
loggerManager = context.getContainer().lookup( LoggerManager.class );
}
catch ( ComponentLookupException e )
{
ComponentDescriptor cd = new ComponentDescriptor();
cd.setRole( LoggerManager.ROLE );
cd.setRoleHint( PlexusConstants.PLEXUS_DEFAULT_HINT );
cd.setImplementation( ConsoleLoggerManager.class.getName() );
try
{
context.getContainer().addComponentDescriptor( cd );
}
catch ( CycleDetectedInComponentGraphException cre )
{
throw new ContainerInitializationException( "Error setting up logging manager.", cre );
}
loggerManager = new ConsoleLoggerManager( "info" );
}
context.getContainer().setLoggerManager( loggerManager );
}
Logger logger = loggerManager.getLoggerForComponent( PlexusContainer.class.getName() );
context.getContainer().enableLogging( logger );
}