📄 30e2157c558c001c14d99e8591aa4155
字号:
package main.cn.edu.nju.software.sd.cll;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.*;
public class LogManager {
private static LogManager manager = new LogManager();
private LoggerFactory factory;
private Hashtable<String,Logger> table;
private LogManager()
{
table = new Hashtable<String,Logger>();
// table.put("rootLogger",Logger.getRootLogger());
factory = new DefaultLoggerFactory();
}
public static LogManager getLogManager()
{
return manager;
}
public Logger getLogger(String name)
{
Logger logger = table.get(name);
if(logger==null)
{
logger = factory.createNewLogger(name);
Configuration.config(logger);
setParent(logger);
table.put(name, logger);
updateParent(logger);
}
return logger;
}
public boolean findLogger(Logger logger)
{
boolean isexist = table.contains(logger);
return isexist;
}
public Logger getParent(Logger logger)
{
String loggerName = logger.getName();
String temp = loggerName;
String parentName = null;
Logger parent = null;
int dot = loggerName.lastIndexOf(".");
while(dot!=-1)
{
parentName = temp.substring(0,dot);
parent = table.get(parentName);
if(parent==null)
{
dot = parentName.lastIndexOf(".");
temp = parentName;
}
else
break;
}
if(parent!=null)
return parent;
else
return Logger.getRootLogger();
}
public void setParent(Logger logger)
{
Logger parent = getParent(logger);
logger.parent = parent;
}
public Level getParentLevel(Logger logger)
{
Logger parent = logger.parent;
while(parent.getLevel()==null)
{
parent = parent.parent;
}
return parent.getLevel();
}
public Format getParentFormat(Logger logger)
{
Logger parentlogger = logger.parent;
while(parentlogger.getFormat()==null)
{
parentlogger = parentlogger.parent;
}
return parentlogger.getFormat();
}
public ArrayList<Handler> getParentHandler(Logger logger)
{
Logger parentlogger = logger.parent;
while(parentlogger.getHandlers().isEmpty())
{
parentlogger = parentlogger.parent;
}
return parentlogger.getHandlers();
}
public void updateParent(Logger logger)
{
String loggername = logger.getName();
Logger temp =null;
String tempstr = null;
Logger tempparent = null;
Iterator it=table.keySet().iterator();
while(it.hasNext()){
temp = table.get(it.next());
tempparent = temp.parent;
tempstr = tempparent.getName();
if(loggername.startsWith(tempstr))
temp.parent = logger;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -