package com.pcee.slf4j.logger; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import org.slf4j.ILoggerFactory; import org.slf4j.Logger; public class PceeLoggerFactory implements ILoggerFactory { public static boolean LOG_TO_GUI = false; public static boolean LOG_TO_WS = false; private ConcurrentMap<String, Logger> map; List<LogModule> logModules; public PceeLoggerFactory() { map = new ConcurrentHashMap<String, Logger>(); logModules = new ArrayList<LogModule>(); logModules.add(new ConsoleLogModule()); } public void logToGUI() { logModules.add(new GUILogModule()); } public void logToWs() { logModules.add(new WsLogModule()); } @Override public Logger getLogger(String name) { if (map.containsKey(name)) { return map.get(name); } else { //generate new Logger Logger logger = new PceeLogger(name, logModules); map.put(name, logger); return logger; } } void reset() { map.clear(); } }