我一直在与一家公司合作,该公司在当前的项目中必须实施一项策略,即在代码 (JAVA) 中编写大量跟踪日志,该策略已经完成了一段时间。
我试图避免更改每个方法只是为了在所有方法上编写 logger.log('desired values') 之类的代码行。它只是适得其反。
有没有一种通用的方法来记录方法名称,它接收到的参数,而无需更改大部分代码?我一直在研究注释和类似的东西,但是有很多具有不同参数的方法,所以我无法想出一个好的解决方案。
编辑 1:该项目正在 eclipse 上开发。我正在使用 Liferay 和 JBoss 对门户进行一些更改。
编辑 2:我遵循了此处提供的解决方案并使用了拦截器。我必须对现有方法做的唯一更改是向它们添加注释,这是完全可以接受的。有关更多信息,请在此链接中搜索:http : //docs.oracle.com/javaee/6/tutorial/doc/gkeed.html
最好的方法是使用 AOP 和 Java 注释。我建议使用jcabi-aspects 中的@Loggable注释和 AspectJ方面(我是一名开发人员):
@Loggable(Loggable.DEBUG)
public String load(URL url) {
return url.openConnection().getContent();
}
Run Code Online (Sandbox Code Playgroud)
您可以使用拦截器http://docs.oracle.com/javaee/6/tutorial/doc/gkeed.html来拦截对公共方法的调用,而无需更改任何代码,但不可能将此技术与非公共方法一起使用。
| 归档时间: |
|
| 查看次数: |
5862 次 |
| 最近记录: |