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