|
本帖最后由 leizhou 于 2017-9-29 13:28 编辑
包装日志Logger,打印错误返回码
-----------------------------------
目的:
ERROR日志增加前缀,打印错误返回码: SYS_CODE + 异常类型 + SEQ_CODE
- /**
- *
- * <pre>
- * 描述:错误返回码定义类
- * </pre>
- */
- public final class ResultCode {
- /*
- * 1、系统标识:1位,表示业务或是平台,1-业务、2-平台
- * 2、系统名称:2~3位,表示具体业务或平台,01-学生、02-教师、03-OA、04-教务、05-研究生、06-AMP、07-IDS、08-BUS、09-自定义报表、10-移动、11-公共应用、12-自助服务、13-支付通、14-EMAP、15-一表通、16-ESOP
- */
- public static String SYS_CODE = "#E111";
- // 异常序列号:6~10位,每个模块自定义,要求模块范围内唯一性。默认"00000"
- public static String SEQ_CODE = "00000";
-
- // 正常
- public static final int OK = 0;
-
- /*
- * 异常类型:4~5位,标识数据库、接口、缓存、权限等
- * 01-参数异常,参数有效性校验错误;
- * 02-数据库异常,操作数据库异常,msg中必须有SQL语句和参数信息;
- * 03-缓存异常,对redis、JVM缓存操作失败;
- * 04-权限异常,功能权限、数据权限类异常;
- * 05-网络异常,与外部系统网络通讯异常,msg中必须有外部系统的IP和端口信息;
- * 06-其它运行异常,JAVA程序运行时异常;
- * 07-接口异常,接口调用异常,msg中必须有接口服务端的IP和端口、接口参数信息;
- * 99-除以上外的异常
- */
- public static final int PARAM_ERROR = 1;
- public static final int DB_ERROR = 2;
- public static final int CACHE_ERROR = 3;
- public static final int AUTH_ERROR = 4;
- public static final int CONN_NET_ERROR = 5;
- public static final int JAVA_RUNTIME_ERROR = 6;
- public static final int INTERFACE_ERROR = 7;
- public static final int OTHER_ERROR = 99;
-
- }
复制代码
-----------------------------------
包装类
- public class LoggerDecorateFactory {
-
- public static LoggerDecorate getLogger(Class className){
- return new LoggerDecorate(className);
- }
-
- public static LoggerDecorate getLogger(String name){
- return new LoggerDecorate(name);
- }
- }
复制代码
- /**
- * <pre>
- * 描述:ERROR日志增加前缀: SYS_CODE + 异常类型 + SEQ_CODE
- * </pre>
- * <pre>HISTORY
- * ****************************************************************************
- * ID DATE PERSON REASON
- * 1 2017年6月2日 01116253 Create
- * ****************************************************************************
- * </pre>
- * @author 01116253
- * @since 1.0
- */
- public class LoggerDecorate {
- private Logger logger;
-
- public LoggerDecorate(Class className){
- logger = LoggerFactory.getLogger(className);
- }
-
- public LoggerDecorate(String name){
- logger = LoggerFactory.getLogger(name);
- }
- public boolean isDebugEnabled() {
- return logger.isDebugEnabled();
- }
-
- /**
- * <pre>
- * 常用
- * </pre>
- * @param msgFormat
- * @param arguments
- */
- public void error(String msgFormat, Object... arguments) {
- error(ResultCode.OTHER_ERROR, ResultCode.SEQ_CODE, msgFormat, arguments);
- }
- // 明确指定异常类型和异常序列号
- public void error(int exceptionType, String exceptionSeqCode, String msgFormat, Object... arguments) {
- String exceptionTypeStr = null;
- if(exceptionType < 10){
- exceptionTypeStr = "0" + exceptionType;
- }else{
- exceptionTypeStr = "" + exceptionType;
- }
- StringBuilder errcode = new StringBuilder();
- errcode.append(ResultCode.SYS_CODE);
- errcode.append(exceptionTypeStr);
- errcode.append(exceptionSeqCode);
- errcode.append(" ");
- errcode.append(msgFormat);
- logger.error(errcode.toString(), arguments);
- }
-
- public void info(String msgFormat, Object... arguments) {
- logger.info(msgFormat, arguments);
- }
-
- public void debug(String msgFormat, Object... arguments) {
- logger.debug(msgFormat, arguments);
- }
-
- public void warn(String msgFormat, Object... arguments) {
- logger.warn(msgFormat, arguments);
- }
- }
复制代码
-----------------------------------------------
自定义异常
- public class MyException extends RuntimeException {
- private static final long serialVersionUID = 1L;
- /**
- * 异常类型,见ResultCode
- */
- private int status;
- /**
- * 描述
- */
- private String msg;
- public MyException(){
- super();
- }
-
- public MyException(int status , String msg){
- super(msg);
- this.status = status;
- this.msg = msg;
- }
-
- public MyException(int status , String msg, Throwable t){
- super(msg,t);
- this.status = status;
- this.msg = msg;
- }
-
- public MyException(Throwable t){
- super("其它运行异常",t);
- this.status = ResultCode.JAVA_RUNTIME_ERROR;
- this.msg = "其它运行异常";
- }
-
- public MyException(String msg){
- super(msg);
- this.status = ResultCode.JAVA_RUNTIME_ERROR;
- this.msg = msg;
- }
-
- public MyException(String msg , Throwable t){
- super(msg,t);
- this.status = ResultCode.JAVA_RUNTIME_ERROR;
- this.msg = msg;
- }
- public int getStatus() {
- return status;
- }
- public void setStatus(int status) {
- this.status = status;
- }
- public String getMsg() {
- return msg;
- }
- public void setMsg(String msg) {
- this.msg = msg;
- }
- }
复制代码
-----------------------------------------------
使用
- private LoggerDecorate logger = LoggerDecorateFactory.getLogger(this.getClass());
- logger.error("切面打印请求失败", e);
复制代码- throw new MyException(ResultCode.PARAM_ERROR, "新增MsgUuid={"+uuid+"}失败,msgType={"+msgType+"}不存在");
- try {。。。} catch (MyException e) {logger.error("切面打印请求失败", e);}
复制代码
|
|