From f7cb11a5d53d4964c236a6ecb2e2f4264f2437fd Mon Sep 17 00:00:00 2001 From: sourabh_sourabh Date: Tue, 8 Feb 2022 23:02:27 +0530 Subject: Improve logging in NCMP - Code to change to apply logs at runtime - Fix for minor code smell Issue-ID: CPS-855 Signed-off-by: sourabh_sourabh Change-Id: I93a556fe0fb7ca05a42e84eb5ec4f84afaa8fd92 --- .../org/onap/cps/aop/CpsLoggingAspectService.java | 42 ++++++++++++---------- 1 file changed, 23 insertions(+), 19 deletions(-) (limited to 'cps-service/src/main/java/org/onap') diff --git a/cps-service/src/main/java/org/onap/cps/aop/CpsLoggingAspectService.java b/cps-service/src/main/java/org/onap/cps/aop/CpsLoggingAspectService.java index 20c6af6c3..b5fe0abae 100644 --- a/cps-service/src/main/java/org/onap/cps/aop/CpsLoggingAspectService.java +++ b/cps-service/src/main/java/org/onap/cps/aop/CpsLoggingAspectService.java @@ -21,49 +21,53 @@ package org.onap.cps.aop; import java.util.Arrays; -import java.util.Optional; +import java.util.logging.Level; +import java.util.logging.Logger; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.stereotype.Component; import org.springframework.util.StopWatch; @Aspect @Component @Slf4j -@ConditionalOnExpression( - "'${logging.level.org.onap.cps}'.equalsIgnoreCase('DEBUG')" -) public class CpsLoggingAspectService { - private static final String ALL_CPS_METHODS = "execution(* org.onap.cps..*(..)))"; + private static final String CPS_PACKAGE_NAME = "org.onap.cps"; + private static final String ALL_CPS_METHODS = "execution(* " + CPS_PACKAGE_NAME + "..*(..)))"; /** * To measure method execution time as a logging. + * * @param proceedingJoinPoint exposes the proceed(..) method in order to support around advice. * @return empty in case of void otherwise an object of return type */ @Around(ALL_CPS_METHODS) @SneakyThrows public Object logMethodExecutionTime(final ProceedingJoinPoint proceedingJoinPoint) { - final StopWatch stopWatch = new StopWatch(); - - //Calculate method execution time - stopWatch.start(); - final Object logObject = Optional.ofNullable(proceedingJoinPoint.proceed()).orElse(""); - stopWatch.stop(); - final MethodSignature methodSignature = (MethodSignature) proceedingJoinPoint.getSignature(); - //Log method execution time - log.debug("Execution time of : {}.{}() with argument[s] = {} having result = {} :: {} ms", - methodSignature.getDeclaringType().getSimpleName(), - methodSignature.getName(), Arrays.toString(proceedingJoinPoint.getArgs()), logObject, - stopWatch.getTotalTimeMillis()); + if (isSlf4JDebugEnabled()) { + final StopWatch stopWatch = new StopWatch(); + //Calculate method execution time + stopWatch.start(); + final Object returnValue = proceedingJoinPoint.proceed(); + stopWatch.stop(); + final MethodSignature methodSignature = (MethodSignature) proceedingJoinPoint.getSignature(); + //Log method execution time + log.debug("Execution time of : {}.{}() with argument[s] = {} having result = {} :: {} ms", + methodSignature.getDeclaringType().getSimpleName(), + methodSignature.getName(), Arrays.toString(proceedingJoinPoint.getArgs()), returnValue, + stopWatch.getTotalTimeMillis()); + return returnValue; + } + return proceedingJoinPoint.proceed(); + } - return logObject; + private static boolean isSlf4JDebugEnabled() { + return Logger.getLogger(CPS_PACKAGE_NAME).isLoggable(Level.FINE); } } -- cgit 1.2.3-korg