package fr.mch.mdo.restaurant.services.logs;
import fr.mch.mdo.i18n.IMessageQuery;
import fr.mch.mdo.i18n.MessageQueryResourceBundleImpl;
import fr.mch.mdo.logs.ILogger;
import fr.mch.mdo.logs.ILoggerService;
import fr.mch.mdo.restaurant.resources.IResources;
public class LoggerServiceImpl implements ILoggerService
{
private ILogger logger;
/**
* This class is only used for Singleton lazy initialization
*/
private static class InitializeOnDemandHolder {
private static ILoggerService instance;
static {
final IMessageQuery loggerMessage = new MessageQueryResourceBundleImpl(IResources.LOG_RESOURCE_BUNDLE_MESSAGES_FILE);
final ILogger logger = new LoggerImpl(loggerMessage);
instance = new LoggerServiceImpl(logger);
}
}
/**
* This method is used to give an Singleton instance. This method can be
* used for testing but normally we must use Spring IOC
*
* @return the singleton
*/
public static ILoggerService getInstance() {
return InitializeOnDemandHolder.instance;
}
/**
* Constructor needed for Spring IOC
*/
public LoggerServiceImpl() {
}
public LoggerServiceImpl(final ILogger logger) {
this.logger = logger;
}
public ILogger getLogger(final String className) {
return logger.getLogger(className);
}
public ILogger getLogger() {
return logger.getLogger();
}
public void setLogger(final ILogger logger) {
this.logger = logger;
}
}