Я пытаюсь использовать org.slf4j.Logger, чтобы перехватывать вызовы журнала и сохранять их через java-агент. Мой код выглядит следующим образом:
new AgentBuilder.Default()
.with(new AgentBuilder.InitializationStrategy.SelfInjection.Eager())
.type(hasSuperType(nameContains("Logger")))
.transform(new AgentBuilder.Transformer.ForAdvice()
.include(Agent.class.getClassLoader())
.advice(named("info"), LogAdvice.class.getName()))
.installOn(inst);
LogAdvice имеет следующий метод:
@Advice.OnMethodEnter
public static void before(@Advice.This Object obj){
System.out.println(obj);
System.out.println("===========ENTERED INFO==========");
}
Но этот метод никогда не вводится.
Мой подход прекрасно работает с другими классами, которые я пробовал, такими как метод put () из java.util.Map. Есть идеи, почему в этом случае не работает контрольно-измерительный прибор?