搜尋

首頁  >  問答  >  主體

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

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

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

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

伊谢尔伦伊谢尔伦2802 天前801

全部回覆(4)我來回復

  • ringa_lee

    ringa_lee2017-04-18 10:34:17

    可以自己寫個打日誌的代理類別,然後用java.lang.instrument包字節碼注入就行,注入可以用javassist,簡單好用,相當於JVM層的AOP吧.

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:34:17

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:34:17

    一般第三方jar都有日誌的實現,可能使用commons-logging也可能slf4j接口,比如使用了slf4j,實現logback,那麼項目中加入slf4j和logback的jar一般就可以了,更換日誌實現方式就使用日誌橋接包。
    如果該滿足不了要求,可以使用jd-dui反編譯,jbe修改字節碼

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:34:17

    剛發現一個工具anylog,看起來可行,沒試,但是最好能透過程式碼去實現,還在繼續找辦法

    回覆
    0
  • 取消回覆