84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
问题
列表项目现在问题是引用了一个第三方工具,而这个工具并没有打印日志,我想打印这个方法的的入参与返回值,注意这个方法是这个工具里面其它方法去调用的。所以入参与返回值,我是拿不到的。
尝试解决
我现在想到的办法是,用spring的aop去拦截这个方法,利用环绕增强去实现。但是发现,根本拦截不了,spring貌似只能拦截他所管理的bean的方法。
想请教有没有人实现过,打印第三方jar的日志功能,谢谢
小伙看你根骨奇佳,潜力无限,来学PHP伐。
可以自己写个打日志的代理类,然后用java.lang.instrument包字节码注入就行,注入可以用javassist,简单好用,相当于JVM层的AOP吧.
这要看你如何使用的如果你使用的bean对象被ioc容器管理着那一定可以使用aop
bean
ioc
aop
一般第三方jar都有日志的实现,可能使用commons-logging也可能slf4j接口,比如使用了slf4j,实现logback,那么项目中加入slf4j和logback的jar一般就可以了,更换日志实现方式就使用日志桥接包。如果该满足不了要求,可以使用jd-dui反编译,jbe修改字节码
刚发现一个工具anylog,看样子可行,没试,但是最好能通过代码去实现,还在继续找办法
可以自己写个打日志的代理类,然后用java.lang.instrument包字节码注入就行,注入可以用javassist,简单好用,相当于JVM层的AOP吧.
这要看你如何使用的如果你使用的
bean
对象被ioc
容器管理着那一定可以使用aop
一般第三方jar都有日志的实现,可能使用commons-logging也可能slf4j接口,比如使用了slf4j,实现logback,那么项目中加入slf4j和logback的jar一般就可以了,更换日志实现方式就使用日志桥接包。
如果该满足不了要求,可以使用jd-dui反编译,jbe修改字节码
刚发现一个工具anylog,看样子可行,没试,但是最好能通过代码去实现,还在继续找办法