У меня есть странная проблема с попыткой добавить параметризованный перехватчик протоколирования в мое приложение Java EE 7.Java EE: попытка связать перехватчик с помощью аннотации с несколькими значениями
Я перешел от класса-перехватчика с использованием аннотации @Interceptors к написанию пользовательского перехватчика перехватчика. То, что я не выглядит так ...
аннотаций
@Inherited
@InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({
ElementType.TYPE,
ElementType.METHOD
})
public @interface LogMethodCall {
MethodLogger logLevel() default MethodLogger.INFO;
}
Перехватчик
@Slf4j
@LogMethodCall
@Interceptor
@Priority(Interceptor.Priority.APPLICATION)
public class ActionInterceptor {
@AroundInvoke
protected Object protocolInvocation(final InvocationContext ic) throws Exception {
log.info(
"{}: <{}> called. Parameters={}",
ic.getTarget().getClass().getName(),
ic.getMethod().getName(),
ic.getParameters());
return ic.proceed();
}
}
Использование
@GET
@Path("/{account}")
@LogMethodCall
public void inboxes(@Suspended AsyncResponse response, @PathParam("account") String account) {
...
}
Когда я использую его как это все работает нормально ,
Купить, когда я пытаюсь использовать изменить LOGLEVEL и использовать
@LogMethodCall(logLevel=MethodLogger.DEBUG)
тогда мой перехватчик никогда не будет вызываться.
Что мне здесь не хватает? Почему установка значения аннотации нарушает код?