parent
							
								
									c66ba751a7
								
							
						
					
					
						commit
						8b64314d95
					
				| @ -0,0 +1,2 @@ | ||||
| eclipse.preferences.version=1 | ||||
| performed.operation.correct.unbound.jre=1.0 | ||||
| @ -0,0 +1,2 @@ | ||||
| /com/ | ||||
| /dataSystem.properties | ||||
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								| @ -0,0 +1,33 @@ | ||||
| package com.base; | ||||
| 
 | ||||
| import java.io.File; | ||||
| 
 | ||||
| /** | ||||
|  * @描述 常量类 | ||||
|  * @author chen | ||||
|  * @date 2016年8月30日 | ||||
|  * @package com.base | ||||
|  */ | ||||
| public class Constant { | ||||
| 	 | ||||
| 	/** 配置文件文件-dataSystem.properties  */ | ||||
| 	public static String SYSTEM_PROPERTIES_FIEL_PATH = "/com/base/dataSystem.properties"; | ||||
| 	 | ||||
| 	/** 国际话配置文件文件-i18n.properties  */ | ||||
| 	public static String I18N_PROPERTIES_FIEL_PATH = "/com/base/i18n.properties"; | ||||
| 	 | ||||
| 	/** 记录异常的文件-system_exception.txt-的位置--  */ | ||||
| 	public final static String SYSTEM_EXCEPTION_FILEPATH =  "\\log\\system_exception.txt"; | ||||
| 	 | ||||
| 	 | ||||
| 	/** WritefileThread-线程睡眠时间--3000 */ | ||||
| 	public final static long THREAD_SLEEP_WRITEFILETHREAD = 3000; | ||||
| 	 | ||||
| 	/** 是否将异常写入文件 */ | ||||
| 	public final static String IS_WRITE_LOGFILE = "iswritelogfile"; | ||||
| 	 | ||||
| 	/** CustomException记录报异常的对象的对象个数--10 */ | ||||
| 	public final static int CustomException_log_object_size = 10; | ||||
| 	 | ||||
| 	 | ||||
| } | ||||
| @ -0,0 +1,112 @@ | ||||
| package com.base; | ||||
| 
 | ||||
| 
 | ||||
| @SuppressWarnings("serial") | ||||
| public class CustomException extends Exception { | ||||
| 
 | ||||
| 	/** 自定义异常信息-错误信息  */ | ||||
| 	private String msg; | ||||
| 	 | ||||
| 	/** 操作对象  */ | ||||
| 	private Object[] objArray; | ||||
| 	 | ||||
| 	/** 异常  */ | ||||
| 	private Throwable cause; | ||||
| 	 | ||||
| 	static{ | ||||
| 		//  是否   启动 记录 异常的线程
 | ||||
| 		if (Boolean.valueOf(Resource.getProperties().get(Constant.IS_WRITE_LOGFILE))) { | ||||
| 			//启动 记录 异常的线程
 | ||||
| 			WritefileThread wt = new WritefileThread(); | ||||
| 			wt.start(); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public CustomException() { | ||||
| 	        super(); | ||||
|     } | ||||
| 	  | ||||
| 	/** | ||||
| 	 * @功能 将异常记录进文件 | ||||
| 	 * @param code 异常编码 | ||||
| 	 * @param msg 自定义异常信息 | ||||
| 	 * @param e | ||||
| 	 * @param obj | ||||
| 	 */ | ||||
| 	public CustomException(String code,Exception e,Object... obj) { | ||||
| 		super(code); | ||||
| 		StringBuffer sbuf= new StringBuffer(); | ||||
| 		sbuf.append(msg); | ||||
| 		 | ||||
| 		sbuf.append(code); | ||||
| 		sbuf.append("\r\n"); | ||||
| 		msg = Resource.getProperties().get(code); | ||||
| 		// 记录自定义的 异常
 | ||||
| 		if (null != msg) { | ||||
| 			sbuf.append(msg); | ||||
| 			sbuf.append("\r\n"); | ||||
| 		} | ||||
| 		// 记录原始的异常
 | ||||
| 		if (null != e) { | ||||
| 			StackTraceElement[] array = e.getStackTrace(); | ||||
| 			cause = e.getCause(); | ||||
| 			for (StackTraceElement stackTraceElement : array) { | ||||
| 				sbuf.append(stackTraceElement.toString()); | ||||
| 				sbuf.append("\r\n"); | ||||
| 			} | ||||
| 		} | ||||
| 		//记录  出现异常时  当前的对象
 | ||||
| 		if (null != obj) { | ||||
| 			Object[] array = obj; | ||||
| 			sbuf.append("Object[] size :  "); | ||||
| 			sbuf.append(array.length); | ||||
| 			int forSize = 0; | ||||
| 			if (Constant.CustomException_log_object_size < array.length) { | ||||
| 				forSize = Constant.CustomException_log_object_size; | ||||
| 			} | ||||
| 			else { | ||||
| 				forSize = array.length; | ||||
| 			} | ||||
| 			for (int i = 0; i < forSize; i++) { | ||||
| 				sbuf.append(array[i]); | ||||
| 				sbuf.append("\r\n"); | ||||
| 			} | ||||
| 			sbuf.append("......"); | ||||
| 			sbuf.append("\r\n"); | ||||
| 		} | ||||
| 		else { | ||||
| 			sbuf.append("null"); | ||||
| 			sbuf.append("\r\n"); | ||||
| 		} | ||||
| 		 | ||||
| 		sbuf.append("\r\n"); | ||||
| 		// 是否 写入 文件
 | ||||
| 		if (Boolean.valueOf(Resource.getProperties().get(Constant.IS_WRITE_LOGFILE))) { | ||||
| 			WritefileThread.getStrArray().add(sbuf.toString()); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @功能  获得msg | ||||
| 	 * @return msg | ||||
| 	 */ | ||||
| 	public String getMsg() { | ||||
| 		return msg; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @功能  获得objArray | ||||
| 	 * @return objArray | ||||
| 	 */ | ||||
| 	public Object[] getObjArray() { | ||||
| 		return objArray; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @功能  获得cause | ||||
| 	 * @return cause | ||||
| 	 */ | ||||
| 	public Throwable getCause() { | ||||
| 		return cause; | ||||
| 	} | ||||
| } | ||||
| @ -0,0 +1,68 @@ | ||||
| package com.base; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import com.base.Constant; | ||||
| 
 | ||||
| /** | ||||
|  * @描述  写入异常--进文件system_exception.txt | ||||
|  * @author chen | ||||
|  * @date 2016年8月30日 | ||||
|  * @package com.utils.exception | ||||
|  */ | ||||
| public class WritefileThread extends Thread implements Runnable{ | ||||
| 	 | ||||
| 	/** 存储异常信息  */ | ||||
| 	private static List<String> strArray = new ArrayList<>(); | ||||
| 	 | ||||
| 	/** 是否继续运行  */ | ||||
| 	private static boolean isContinue = true; | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void run() { | ||||
| 		super.run(); | ||||
| 		while(isContinue){ | ||||
| 			try { | ||||
| 				Thread.sleep(Constant.THREAD_SLEEP_WRITEFILETHREAD); | ||||
| 			} catch (InterruptedException e) { | ||||
| 				e.printStackTrace(); | ||||
| 			} | ||||
| 			synchronized (strArray) { | ||||
| 				//同步代码--写入日志
 | ||||
| 				String str = array2Str(strArray); | ||||
| //TODO				FileOperate.appendWriteFile(str, Constant.SYSTEM_EXCEPTION_FILEPATH);
 | ||||
| 				strArray.clear(); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	/** | ||||
| 	 * @功能  获得strArray | ||||
| 	 * @return strArray | ||||
| 	 */ | ||||
| 	public static List<String> getStrArray() { | ||||
| 		return strArray; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @功能  设置 isContinue | ||||
| 	 * @param isContinue | ||||
| 	 */ | ||||
| 	public static void setContinue(boolean isContinue) { | ||||
| 		WritefileThread.isContinue = isContinue; | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * @功能 list -->  String | ||||
| 	 * @param array arrayList | ||||
| 	 * @return String | ||||
| 	 */ | ||||
| 	@SuppressWarnings("rawtypes") | ||||
| 	private static String array2Str(List array) { | ||||
| 		StringBuffer sbuf = new StringBuffer(); | ||||
| 		for (Object object : array) { | ||||
| 			sbuf.append(object); | ||||
| 		} | ||||
| 		return sbuf.toString(); | ||||
| 	} | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue