@Aspect public class LogDAOAspect { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Around("execution(* com.*.*DAOImpl.*(..))") public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { String methodId = joinPoint.getTarget().getClass().getSimpleName()+" : "+joinPoint.getSignature().getName() + " : " + ((joinPoint.getArgs()==null||joinPoint.getArgs().length<1)?"":(Arrays.toString(joinPoint.getArgs()))); Object returnVal = null; StopWatch sw = new StopWatch(methodId); try { sw.start(); returnVal= joinPoint.proceed(joinPoint.getArgs()); sw.stop(); } catch (Throwable e) { logger.error(methodId+"\n"+e); throw e; } logger.debug(methodId + ":" +sw.getTotalTimeMillis()); return returnVal; } } @Aspect public class LogControllerAspect { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Around("execution(* com.*.*Controller.*(..))") public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { String methodId = joinPoint.getTarget().getClass().getSimpleName()+" : "+joinPoint.getSignature().getName() + " : " + ((joinPoint.getArgs()==null||joinPoint.getArgs().length<1)?"":(Arrays.toString(joinPoint.getArgs()))); Object returnVal = new ModelAndView("l_form"); StopWatch sw = new StopWatch(methodId); try { sw.start(); returnVal= joinPoint.proceed(joinPoint.getArgs()); sw.stop(); } catch (Throwable e) { logger.error(methodId+"\n"+e); throw e; } logger.debug(methodId + ":" +sw.getTotalTimeMillis()); return returnVal; } }