package com.eactive.eai.rms.client.handler;//package com.eactive.eai.rms.client.handler;
//
//import java.util.Enumeration;
//import java.util.Map;
//import java.util.SortedMap;
//import java.util.TreeMap;
//
//import kr.co.kpl.org.apache.log4j.Category;
//import kr.co.kpl.org.apache.log4j.Level;
//import kr.co.kpl.org.apache.log4j.Logger;
//
//public class LogConfigurer {
//
//    @SuppressWarnings("unchecked")
//    public Map<String, Integer> view() {
//        Enumeration e = Logger.getRootLogger()
//                .getLoggerRepository()
//                .getCurrentLoggers();
//
//        SortedMap<String, Integer> categorys = new TreeMap<String, Integer>();
//
//        for (; e.hasMoreElements();) {
//            Logger x = (Logger) e.nextElement();
//            Category parent = x.getParent();
//            String parentName = parent.getName();
//            Level parentLevel = parent.getLevel();
//
//            if (parentLevel == null) {
//                parentLevel = Level.ERROR;
//            }
//
//            categorys.put(parentName, parentLevel.toInt());
//        }
//        return categorys;
//    }
//
//    public void edit(String[] category, String[] categoryLevel,
//            String[] detailCategory, String[] detailCategoryLevel,
//            String foreceLevel, String forceDetailLevel) {
//
//        if (category != null) {
//            for (int i = 0; i < category.length; i++) {
//                parentUpdate(category[i], categoryLevel[i], foreceLevel);
//            }
//        }
//
//        if (detailCategory != null) {
//            for (int i = 0; i < detailCategory.length; i++) {
//                categoryUpdate(detailCategory[i], detailCategoryLevel[i],
//                    forceDetailLevel);
//            }
//        }
//
//    }
//
//    @SuppressWarnings("unchecked")
//    private void parentUpdate(String category, String level, String foreceLevel) {
//
//        if (foreceLevel != null && !foreceLevel.trim().equals("")) {
//            level = foreceLevel;
//        }
//
//        Enumeration e = Logger.getRootLogger()
//                .getLoggerRepository()
//                .getCurrentLoggers();
//
//        for (; e.hasMoreElements();) {
//            Logger logger = (Logger) e.nextElement();
//            Category parent = logger.getParent();
//            if (parent.getName() != null && parent.getName().equals(category)) {
//                parent.setLevel(Level.toLevel(level));
//            }
//        }
//    }
//
//    @SuppressWarnings("unchecked")
//    private void categoryUpdate(String category, String level, String forceLevel) {
//
//        if (forceLevel != null && !forceLevel.trim().equals("")) {
//            level = forceLevel;
//        }
//
//        Enumeration e = Logger.getRootLogger()
//                .getLoggerRepository()
//                .getCurrentLoggers();
//
//        for (; e.hasMoreElements();) {
//            Logger logger = (Logger) e.nextElement();
//            String p = logger.getName();
//            if (p != null && p.equals(category)) {
//                logger.setLevel(Level.toLevel(level));
//            }
//        }
//    }
//
//    @SuppressWarnings("unchecked")
//    public Map<String, Integer> detail(String parent) {
//
//        if (parent == null) {
//            return new TreeMap<String, Integer>();
//        }
//
//        Enumeration e = Logger.getRootLogger()
//                .getLoggerRepository()
//                .getCurrentLoggers();
//
//        SortedMap<String, Integer> details = new TreeMap<String, Integer>();
//        for (; e.hasMoreElements();) {
//            Logger logger = (Logger) e.nextElement();
//            String loggerName = logger.getName();
//
//            if (loggerName != null && loggerName.startsWith(parent)
//                    && !loggerName.equals(parent)) {
//                if (logger.getEffectiveLevel() != null) {
//                    details.put(loggerName, new Integer(
//                            logger.getEffectiveLevel().toInt()));
//                }
//            }
//        }
//        return details;
//    }
//
//    public void newLogger(String newLogger) {
//        Logger logger = Logger.getLogger(newLogger);
//        Logger.getLogger(newLogger + ".createdlogger");
//        logger.setLevel(Level.ERROR);
//        logger.debug("ignored");
//    }
//
//}
