package org.infosec.ismp.syslogd; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.infosec.ismp.util.ThreadCategory; /** * 管理所有的syslog日志源,是Agent查询、添加日志的工具 * * @author lianglin * */ public class SyslogNodeManager { private Map<String, SyslogNode> m_syslogNodes = Collections .synchronizedMap(new HashMap<String, SyslogNode>()); public void addSyslogNode(SyslogNode node) { if (node.getNodeid() != null) { m_syslogNodes.put(node.getNodeid(), node); log().debug("添加一个新的日志源节点: " + node); } else { log().warn("无法添加日志源,因为Nodeid 是null,请检查 :" + node); } } public void removeSyslogNode(String nodeid){ synchronized (m_syslogNodes) { if(m_syslogNodes.containsKey(nodeid)){ m_syslogNodes.remove(nodeid); log().debug("删除一个日志源节点,节点nodeid是 :"+nodeid); }else{ log().debug("该日志源不存在,无法删除,请检查nodeid :"+nodeid); } } } public List<SyslogNode> getAllSyslogNodes(){ List<SyslogNode> nodeList = new ArrayList<SyslogNode>(m_syslogNodes.size()); Collection<SyslogNode> nodeCollection = m_syslogNodes.values(); for(SyslogNode node:nodeCollection){ nodeList.add(node); } return nodeList; } ThreadCategory log() { return ThreadCategory.getInstance(getClass()); } }