请问如果才能打印引用的第三方jar包中方法的日志?

  • 问题

列表项目现在问题是引用了一个第三方工具,而这个工具并没有打印日志,我想打印这个方法的的入参与返回值,注意这个方法是这个工具里面其它方法去调用的。所以入参与返回值,我是拿不到的。

  • 尝试解决

我现在想到的办法是,用spring的aop去拦截这个方法,利用环绕增强去实现。但是发现,根本拦截不了,spring貌似只能拦截他所管理的bean的方法。

想请教有没有人实现过,打印第三方jar的日志功能,谢谢

阅读 12.7k
4 个回答

可以自己写个打日志的代理类,然后用java.lang.instrument包字节码注入就行,注入可以用javassist,简单好用,相当于JVM层的AOP吧.

这要看你如何使用的如果你使用的bean对象被ioc容器管理着那一定可以使用aop

一般第三方jar都有日志的实现,可能使用commons-logging也可能slf4j接口,比如使用了slf4j,实现logback,那么项目中加入slf4j和logback的jar一般就可以了,更换日志实现方式就使用日志桥接包。
如果该满足不了要求,可以使用jd-dui反编译,jbe修改字节码

刚发现一个工具anylog,看样子可行,没试,但是最好能通过代码去实现,还在继续找办法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题