From 938b35db33710afcbf42fe0b0b1137a6c6a0d7b4 Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Sat, 09 Jun 2018 11:19:42 +0800 Subject: [PATCH] logging --- src/main/java/com/moral/security/WebLogAspect.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 59 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/moral/security/WebLogAspect.java b/src/main/java/com/moral/security/WebLogAspect.java new file mode 100644 index 0000000..af535d6 --- /dev/null +++ b/src/main/java/com/moral/security/WebLogAspect.java @@ -0,0 +1,59 @@ +package com.moral.security; + +import java.util.Arrays; + +import javax.servlet.http.HttpServletRequest; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +@Aspect +@Component +public class WebLogAspect { + + private static final Logger LOG = LoggerFactory.getLogger(WebLogAspect.class); + + @Pointcut("execution(public * com.moral.controller.*.*(..))")//������..������������������������������������������������..������������������ + public void logPointCut() { + } + + @Before("logPointCut()") + public void doBefore(JoinPoint joinPoint) throws Throwable { + // ������������������������������������ + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + + // ��������������������� + LOG.info("������������ : " + request.getRequestURL().toString()); + LOG.info("HTTP METHOD : " + request.getMethod()); + LOG.info("IP : " + request.getRemoteAddr()); + LOG.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + + joinPoint.getSignature().getName()); + LOG.info("������ : " + Arrays.toString(joinPoint.getArgs())); + + } + + @AfterReturning(returning = "ret", pointcut = "logPointCut()")// returning���������doAfterReturning������������������ + public void doAfterReturning(Object ret) throws Throwable { + // ������������������������������ + LOG.info("��������� : " + ret); + } + + @Around("logPointCut()") + public Object doAround(ProceedingJoinPoint pjp) throws Throwable { + long startTime = System.currentTimeMillis(); + Object ob = pjp.proceed();// ob ��������������������� + LOG.info("������ : " + (System.currentTimeMillis() - startTime)); + return ob; + } +} \ No newline at end of file -- Gitblit v1.8.0