Logging Aspect to log methods at start and finish, exceptions, configurable.
package com . darkona . awesome . tools; import lombok . extern . slf4j . Slf4j ; import org . apache . commons . lang3 . StringUtils; 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 . slf4j . Logger ; import org . slf4j . LoggerFactory; import org . slf4j . event . Level; import java . time . Duration; import java . time . Instant; import java . util . Arrays; import java . util . HashMap; import java . util . List ; import java . util . Map ; import java . util . stream . Collectors; @Aspect @Slf4j public class LoggedAspect { private static final String METHOD_NAME = "methodName" ; private static final String METHOD_TYPE = "methodType" ; private static final String CLASS_NAME = "className" ; private static final String RETURN_VALUE = "returnValue" ; ...