?? a0ad0d14088c001c19e7c0a9f1c1f59c
字號:
package main.cn.edu.nju.software.sd.cll;
import java.util.ArrayList;
public class LoggerManager {
private static LoggerManager logManager = new LoggerManager();
private LoggerTree tree;
private LoggerFactory factory;
private LoggerManager()
{
// System.out.println("here");
tree = new LoggerTree();
factory = new DefaultLoggerFactory();
}
public static LoggerManager getLogManager()
{
return logManager;
}
/**如果存在名字為name的logger,則返回logger,否則調用工廠方法創建一個名字為name的logger*/
public Logger getLogger(String name)
{
// System.out.println("here"); ok
Logger logger = tree.findLogger(name);
// System.out.println("here"); wrong
if(logger==null)
{
logger = factory.createNewLogger(name);
Configuration.config(logger);
tree.insert(logger);
}
return logger;
}
/**查找是否存在此logger*/
public boolean findLogger(Logger logger)
{
boolean exist = tree.isExist(logger.getName());
return exist;
}
/**獲得logger的父logger*/
public LoggerNode getParent(Logger logger)
{
LoggerNode parent = tree.getParent(logger);
return parent;
}
/**獲得父logger的level*/
public Level getParentLevel(Logger logger)
{
LoggerNode parent = tree.getParent(logger);
while(parent!=null)
{
if(parent.logger.getLevel()==null)
parent = parent.parent;
else
break;
}
if(parent!=null)
return parent.logger.getLevel();
else
return Logger.getRootLogger().getLevel();
}
/**獲得父logger的format*/
public Format getParentFormat(Logger logger)
{
LoggerNode parent = tree.getParent(logger);
while(parent!=null)
{
if(parent.logger.getFormat()==null)
parent = parent.parent;
else
break;
}
if(parent!=null)
return parent.logger.getFormat();
else
return Logger.getRootLogger().getFormat();
}
/**獲得父logger的destination*/
public ArrayList<Handler> getParentHandler(Logger logger)
{
LoggerNode parent = tree.getParent(logger);
while(parent!=null)
{
if(parent.logger.getHandlers().isEmpty())
parent = parent.parent;
else
break;
}
if(parent!=null)
return parent.logger.getHandlers();
else
return Logger.getRootLogger().getHandlers();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -