Rumah > Soal Jawab > teks badan
问题
列表项目现在问题是引用了一个第三方工具,而这个工具并没有打印日志,我想打印这个方法的的入参与返回值,注意这个方法是这个工具里面其它方法去调用的。所以入参与返回值,我是拿不到的。
尝试解决
我现在想到的办法是,用spring的aop去拦截这个方法,利用环绕增强去实现。但是发现,根本拦截不了,spring貌似只能拦截他所管理的bean的方法。
想请教有没有人实现过,打印第三方jar的日志功能,谢谢
ringa_lee2017-04-18 10:34:17
Anda boleh menulis kelas ejen pengelogan sendiri, dan kemudian menggunakan pakej java.lang.instrument untuk suntikan bytecode Anda boleh menggunakan javassist untuk suntikan, yang mudah dan mudah untuk digunakan pada lapisan JVM .
大家讲道理2017-04-18 10:34:17
Ia bergantung pada cara anda menggunakannya Jika objek bean
yang anda gunakan diuruskan oleh bekas ioc
, anda pasti boleh menggunakannya aop
大家讲道理2017-04-18 10:34:17
Secara amnya balang pihak ketiga mempunyai pelaksanaan log, yang mungkin menggunakan antara muka commons-logging atau slf4j Sebagai contoh, jika slf4j digunakan untuk melaksanakan log balik, maka secara amnya cukup untuk menambah balang slf4j dan logback pada projek kaedah pelaksanaan log Gunakan pakej penghubung log.
Jika keperluan tidak dapat dipenuhi, anda boleh menggunakan jd-dui untuk menyahkompilasi dan jbe untuk mengubah suai bytecode
巴扎黑2017-04-18 10:34:17
Saya baru sahaja menemui alat, anylog, yang nampaknya berfungsi, tetapi saya belum mencubanya lagi, tetapi lebih baik untuk melaksanakannya melalui kod saya masih mencari jalan