package com.sun.identity.plugin.log;

import com.sun.identity.common.SystemConfigurationUtil;
import com.sun.identity.shared.debug.Debug;

public final class LogManager {
   private static final Debug DEBUG = Debug.getInstance("libPlugins");
   private static final String LOG_PROVIDER_NAME = "com.sun.identity.plugin.log.class";

   public static Logger getLogger(String componentName) throws LogException {
      Logger logProvider = null;
      String pluginName = SystemConfigurationUtil.getProperty("com.sun.identity.plugin.log.class", "com.sun.identity.plugin.log.impl.LogProvider");

      try {
         if (pluginName != null && !pluginName.isEmpty()) {
            Class<?> logProviderClass = Class.forName(pluginName.trim());
            logProvider = (Logger)logProviderClass.getDeclaredConstructor().newInstance();
            logProvider.init(componentName);
         }

         return logProvider;
      } catch (Exception e) {
         DEBUG.error("Error creating class instance : ", e);
         throw new LogException(e);
      }
   }
}
