import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
/**
* @ClassName CommunicationServiceAspect
* @Description TODO
* @Author dada
* @Date 9/18/2019 5:42 PM
* @Version 1.0
**/
@Aspect
@Component
public class CommunicationServiceAspect {
private static CxLogger logger = CxLogManager.getLogger("CommunicationServiceAspect.class").defaultTag("Trag", "CommunicationServiceAspect");
@Pointcut("@annotation(CommunicationService)")
public void emailService() {
}
@Around(value = "emailService()")
public Object communicationService(ProceedingJoinPoint joinPoint) throws Throwable {
/*long startTime = System.currentTimeMillis();
String name = joinPoint.getSignature().toString();
joinPoint.proceed();
long sendEmailTime = System.currentTimeMillis() - startTime;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Communication Service: ");
stringBuilder.append(name);
InfoLogUtil.info(stringBuilder.toString(), sendEmailTime, logger);*/
long start = System.currentTimeMillis();
try {
Object result = joinPoint.proceed();
// long end = System.currentTimeMillis();
// InfoLogUtil.info(joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName() + parseParames(joinPoint.getArgs()) , "INBOUND", (end - start), logger);
return result;
} catch (Throwable e) {
InfoLogUtil.error(joinPoint + "listener-throw exception :" + e.getMessage(), parseParames(joinPoint.getArgs()), logger);
throw e;
} finally {
long end = System.currentTimeMillis();
InfoLogUtil.info(joinPoint.getSignature().toShortString(), "INBOUND", end - start, logger);
}
}
private String parseParames(Object[] parames) {
if (null == parames || parames.length <= 0) {
return "no parameters";
}
StringBuffer param = new StringBuffer("the request parameters is # :[ ");
int i = 0;
for (Object obj : parames) {
i++;
if (i == 1) {
param.append(obj.toString());
continue;
}
param.append(" ,").append(obj.toString());
}
return param.append(" ]").toString().replace("#", String.valueOf(i));
}
}
切面打印日志
最新推荐文章于 2023-12-02 00:55:56 发布