取eclipse console 打印字符串,判断日志是否有异常

1. 取得当前输入的console 

/**
	 * 取得控制台的字符串的Docment
	 * @param processConsoleName 控制台名称,如在java application  中定义的名字为test ,则这个地方的输入为test即可
	 * @return null
	 */
	public static IDocument getConsoleMsgByProcessConsole(String processConsoleName){
		IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();  
		IConsole [] console = manager.getConsoles();
		for (IConsole iConsole : console) {
			if(iConsole instanceof ProcessConsole){
				ProcessConsole process = (ProcessConsole) iConsole;
				if(process.getName() != null && process.getName().contains(processConsoleName)){
					IDocument doc = process.getDocument();
					if(doc != null){
						return doc;
					}
				}
			}
		}
		
		return null;
	}
1. 开始处理每一行。也可以取得所有

/**
	 * 判断控制台信息是否有异常
	 * @param consoleName
	 * @throws BadLocationException 
	 */
	private boolean isConsoleMsgException(String consoleName) throws BadLocationException{
		IDocument doc = ProjectUtils.getConsoleMsgByProcessConsole(consoleName);
		if(doc == null){
			return false;
		}
		String consolelMsgStr = doc.get();
		if(consolelMsgStr == null || consolelMsgStr.length() ==0){
			return false;
		}
		//开始遍历每一行。查找问题
		int totalLine = doc.getNumberOfLines();
		for(int i = 0;i<totalLine;i++){
			IRegion region= doc.getLineInformation(i);
			String liniter= doc.get(region.getOffset(), region.getLength());
			if(StringUtils.contains(liniter, "ERROR")){
				return true;
			}
		}
		return false;
	}
问题解决。问题想复杂了,花了我一天多的时间。细细分析其实很简单。

你可能感兴趣的:(取eclipse console 打印字符串,判断日志是否有异常)