我试图创建一个日志系统,将采取一系列的方法。我截取的一些方法有0个参数,其他的很多。我的问题是:我可以创建一个通用的 @Advice.OnMethodEnter
可以用 @Advice.AllArguments
和bytebuddy在一起?
方法如下所示:
@Advice.OnMethodEnter
public static void intercept(@Port int port,
@Host String host,
@Advice.Origin("#t:#m") String signature,
@Advice.AllArguments Object[] arguments)
{
AgentHelper.log(host, port, signature, Arrays.toString(arguments));
}
注解完成后一切正常 @Advice.AllArguments
缺少,但我一放出来,所有没有参数的方法都被忽略了。
我还尝试查看是否存在使用以下命令引发的显式错误:
new AgentBuilder.Default()
...
.with(AgentBuilder.Listener.StreamWriting.toSystemOut().withErrorsOnly())
.with(AgentBuilder.InstallationListener.StreamWriting.toSystemOut())
...
但这没有显示任何错误。我是否必须逐个创建拦截器,或者是否有方法以我不了解的方式获得这种行为?
1条答案
按热度按时间s8vozzvw1#
是的,这应该可以正常工作:
这将在调用时打印一个空列表。