⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a0ad0d14088c001c19e7c0a9f1c1f59c

📁 一个类似于log4j的小软件
💻
字号:
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 + -