package com.sun.identity.cot;

import com.sun.identity.plugin.log.LogException;
import com.sun.identity.plugin.log.LogManager;
import com.sun.identity.plugin.log.Logger;
import java.util.logging.Level;

public class LogUtil {
   public static final String INVALID_COT_NAME = "INVALID_COT_NAME";
   public static final String CONFIG_ERROR_GET_ALL_COT_DESCRIPTOR = "CONFIG_ERROR_GET_ALL_COT_DESCRIPTOR";
   public static final String INVALID_COT_TYPE = "INVALID_COT_TYPE";
   public static final String COT_FROM_CACHE = "COT_FROM_CACHE";
   public static final String COT_DESCRIPTOR_RETRIEVED = "COT_DESCRIPTOR_RETRIEVED";
   public static final String CONFIG_ERROR_GET_COT_DESCRIPTOR = "CONFIG_ERROR_GET_COT_DESCRIPTOR";
   public static final String CONFIG_ERROR_RETREIVE_COT = "CONFIG_ERROR_RETREIVE_COT";
   private static Logger logger;

   public static void access(Level level, String msgid, String[] data) {
      access(level, msgid, data, null);
   }

   public static void access(Level level, String msgid, String[] data, Object session) {
      if (logger != null) {
         try {
            logger.access(level, msgid, data, session);
         } catch (LogException le) {
            COTUtils.DEBUG.error("LogUtil.access: Couldn't write log:", le);
         }
      }
   }

   public static void error(Level level, String msgid, String[] data) {
      error(level, msgid, data, null);
   }

   public static void error(Level level, String msgid, String[] data, Object session) {
      if (logger != null) {
         try {
            logger.error(level, msgid, data, session);
         } catch (LogException le) {
            COTUtils.DEBUG.error("LogUtil.error: Couldn't write log:", le);
         }
      }
   }

   public boolean isLogEnabled() {
      return logger == null ? false : logger.isLogEnabled();
   }

   static {
      try {
         logger = LogManager.getLogger("COT");
      } catch (LogException le) {
         COTUtils.DEBUG.message("Error getting logger:", le);
      }
   }
}
