日誌異常處理-spring aop註解
阿新 • • 發佈:2017-08-30
get target public ring -s row imp for method
spring aop 可以在不破壞我們程序代碼的前提下很好的對程序異常進行打印,網上也有很多這樣的例子,我這裏寫的比較簡單,只是針對程序出異常時進行見到的日誌打印,代碼比較簡單。
異常日誌處理類
package com.apt.study.exception; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import com.alibaba.fastjson.JSONObject; @Component @Aspectpublic class ExceptionToJson { public Logger logger = LoggerFactory.getLogger(ExceptionToJson.class); @Pointcut("execution(* com.apt.study.service..*.*(..))") public void exceptionLog() { } @AfterThrowing(pointcut = "exceptionLog()", throwing="e")public void doAfterThrowing(JoinPoint joinPoint, Throwable e) { try { logger.error("------->Error Class:" + e.getClass().getName()); logger.error("------->Error msg:" + e.getMessage()); logger.error("------->Error method:" + (joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()")); Object[] arguments = joinPoint.getArgs(); if (arguments != null && arguments.length > 0) { for ( int i = 0; i < arguments.length; i++) { logger.error("------->args[" + i + "]: " + JSONObject.toJSONString(arguments[i])); } } } catch (Exception ex) { //記錄本地異常日誌 logger.error("------->異常通知異常"); logger.error("------->異常信息:{}", ex.getMessage()); } } }
日誌異常處理-spring aop註解