diff --git a/pom.xml b/pom.xml index 27fb9a6bd..b9c62ccf7 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ - 17 + 21 UTF-8 UTF-8 io.projectreactor diff --git a/src/main/java/org/springframework/samples/petclinic/LoggingAspect.java b/src/main/java/org/springframework/samples/petclinic/LoggingAspect.java new file mode 100644 index 000000000..95fcbbdc4 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/LoggingAspect.java @@ -0,0 +1,34 @@ +package org.springframework.samples.petclinic; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +@Aspect +@Component +public class LoggingAspect { + + private static final Logger logger = LoggerFactory.getLogger(LoggingAspect.class); + + @Around("execution(* org.springframework.samples.petclinic..*.*(..))") + public Object logMethodExecution(ProceedingJoinPoint joinPoint) throws Throwable { + String methodName = joinPoint.getSignature().getName(); + String className = joinPoint.getTarget().getClass().getSimpleName(); + + logger.info("Начало выполнения метода: {}.{}", className, methodName); + + long startTime = System.currentTimeMillis(); + Object result = null; + try { + result = joinPoint.proceed(); + return result; + } finally { + long endTime = System.currentTimeMillis(); + logger.info("Завершение выполнения метода: {}.{} (время выполнения: {} мс)", + className, methodName, (endTime - startTime)); + } + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Visit.java b/src/main/java/org/springframework/samples/petclinic/owner/Visit.java index 35569bdaa..3e0873748 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Visit.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Visit.java @@ -15,15 +15,14 @@ */ package org.springframework.samples.petclinic.owner; -import java.time.LocalDate; - -import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.samples.petclinic.model.BaseEntity; - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Table; import jakarta.validation.constraints.NotBlank; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.samples.petclinic.model.BaseEntity; + +import java.time.LocalDate; /** * Simple JavaBean domain object representing a visit.