package rocks.inspectit.server.spring.aop; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Marker for methods that will be logged and/or profiled, By placing this annotation on a method * spring will proxy the service and call the interceptor that provides advice to the real method * call. * * @author Patrice Bouillet */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface MethodLog { /** * The log level which can be used. The level from logback cannot be used directly as it is not * allowed as a return type. * * @author Patrice Bouillet * */ public enum Level { OFF, ERROR, WARN, INFO, DEBUG, TRACE, ALL; // NOCHK } /** * The defined level on which the time messages shall be printed to. */ Level timeLogLevel() default Level.DEBUG; /** * The defined level on which the trace messages shall be printed to. */ Level traceLogLevel() default Level.TRACE; /** * Defines a duration limit on this method. If the methods duration exceed the specified one, a * message will be printed into the log. */ long durationLimit() default -1; }