1. 程式人生 > >日誌異常處理-spring aop註解

日誌異常處理-spring aop註解

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
@Aspect
public 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註解