recherche

Maison  >  Questions et réponses  >  le corps du texte

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

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

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

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

伊谢尔伦伊谢尔伦2802 Il y a quelques jours802

répondre à tous(4)je répondrai

  • ringa_lee

    ringa_lee2017-04-18 10:34:17

    Vous pouvez écrire vous-même une classe d'agent de journalisation, puis utiliser le package java.lang.instrument pour l'injection de bytecode. Vous pouvez utiliser javassist pour l'injection, qui est simple et facile à utiliser. Il est équivalent à AOP au niveau de la couche JVM. .

    répondre
    0
  • 大家讲道理

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

    Cela dépend de la façon dont vous l'utilisez. Si l'objet bean que vous utilisez est géré par le conteneur ioc, vous pouvez certainement l'utiliser aop

    répondre
    0
  • 大家讲道理

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

    En général, les jars tiers ont une implémentation de journal, qui peut utiliser l'interface commons-logging ou slf4j. Par exemple, si slf4j est utilisé pour implémenter la journalisation, il suffit généralement d'ajouter slf4j et logback jar au projet. méthode d'implémentation du journal Utiliser le package de pontage des journaux.
    Si les conditions ne peuvent pas être remplies, vous pouvez utiliser jd-dui pour décompiler et jbe pour modifier le bytecode

    répondre
    0
  • 巴扎黑

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

    Je viens de trouver un outil, anylog, qui semble fonctionner. Je ne l'ai pas encore essayé, mais il serait préférable de l'implémenter via du code. Je cherche toujours un moyen

    .

    répondre
    0
  • Annulerrépondre