Maison > Questions et réponses > le corps du texte
问题
列表项目现在问题是引用了一个第三方工具,而这个工具并没有打印日志,我想打印这个方法的的入参与返回值,注意这个方法是这个工具里面其它方法去调用的。所以入参与返回值,我是拿不到的。
尝试解决
我现在想到的办法是,用spring的aop去拦截这个方法,利用环绕增强去实现。但是发现,根本拦截不了,spring貌似只能拦截他所管理的bean的方法。
想请教有没有人实现过,打印第三方jar的日志功能,谢谢
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. .
大家讲道理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
大家讲道理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
巴扎黑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
.