📄 configimportlog.java
字号:
package cn.edu.buaa.ieguam.logmanage;
import cn.edu.buaa.ieguam.logmanage.LogImportImpl;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.util.Stack;
import javax.xml.parsers.ParserConfigurationException;
/**
* 解析备份在.xml文件格式中的日志信息导入并赋给对应的MBean
* @author tongxiaodong
* Creation time:Apr 23, 2007 10:41:37 PM
*/
public class ConfigImportLog extends DefaultHandler
{
private String eleName = null;//元素名
private StringBuffer content = new StringBuffer();//元素内容
private Stack eleStack = new Stack();//元素栈
private LogImportImpl logImportImpl = null;
public ConfigImportLog()
{
this.logImportImpl = new LogImportImpl();
}
/**
* 元素开始解析触发事件
*/
public void startElement(String uri, String localName, String qName, Attributes attributes)
{
this.eleName = qName;
this.eleStack.push(eleName);
if(eleName.equals("logDoc"))//判断是否是备份文档logDoc的开始
{
this.logImportImpl.setIsStart(true);
}
else
{
//判断是备份记录起始符“item”,还是MBean记录的起始符“log”等,或者是MBean的属性名“id”等
if(eleName.equals("item"))
{
this.logImportImpl.setInItem(true);
this.logImportImpl.getLogTreeImpl().resetNewMBean();//重新初始化MBeans
}
else
{
if(eleName.equals("main") || eleName.equals("logType") || eleName.equals("crossMainTomcat") || eleName.equals("log4J") || eleName.equals("tomcatAccess") || eleName.equals("application") || eleName.equals("opType") || eleName.equals("windows") || eleName.equals("operation"))
{
this.logImportImpl.settingCurMBean(eleName);//设置当前MBean
/**************************/
//System.out.println("test2: "+eleName);
/*************************/
this.logImportImpl.setInMBean(true);
}
else
{
this.logImportImpl.setIsPojoCol(true);
}
}
}
}
/**
* 元素属性值提取
*/
public void characters(char[] ch, int start, int length)
{
this.content.append(ch,start,length);
}
/**
* 元素解析结束触发事件
* @throws
*/public void endElement(String uri, String localName, String qName)
{
this.eleName = (String) eleStack.pop();
if(eleName.equals("logDoc"))
{
this.logImportImpl.setIsStart(false);
}
else
{
if(eleName.equals("item"))
{
this.logImportImpl.setInItem(false);
}
else
{
if(eleName.equals("main") || eleName.equals("logType") || eleName.equals("crossMainTomcat") || eleName.equals("log4J") ||eleName.equals("tomcatAccess") ||eleName.equals("application") ||eleName.equals("opType") || eleName.equals("windows") || eleName.equals("operation"))
{
this.logImportImpl.setInMBean(false);
}
else
{
this.logImportImpl.setIsPojoCol(false);
}
}
}
try
{
this.logImportImpl.importImpl(this.eleName,this.content.toString().trim());
}catch(Exception c)
{
System.out.println(c.getStackTrace());
System.out.println("从备份文件导入日志数据时出错!");
}
this.content.delete(0,this.content.length());
}
/**
* 用于单元测试
* @throws IOException
* @throws SAXException
* @throws ParserConfigurationException
*/
public void endDocument()
{
//this.logImportImpl.test();
}
/**
* @param args
* @throws SAXException
* @throws ParserConfigurationException
* @throws ParserConfigurationException
* @throws IOException
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -