java – 使用注释进行跟踪记录
我一直在使用一个公司的代码库,该代码库具有编写大量跟踪记录的策略.所以每个方法都有一段代码开始如下:
String LOG_METHOD = "nameOfMethod(String,List<Long>):void"; if(logger.isTraceEnabled()) { Object[] params = new Object[] { string,list }; logger.trace(CompanyMessages.newMethodInstanceMessage(this,LOG_METHOD,params)); } 并以此结束(在finally子句中或仅在方法的结尾处??: if(logger.isTraceEnabled()) { logger.trace(CompanyMessages.leaveMethodInstanceMessage(this,LOG_METHOD)); } 实际上有更多的代码,但这是基本的想法. 我选择这个解决方案的原因是让其他开发人员不必学习任何新东西,而是使用注释而不是代码.我在一个服务器环境中工作,我们部署了数百个Web应用程序和数十个开发人员.所以我一直在寻找一种在Web应用程序中实现这一点的方法,而不需要大量额外的编码或者额外的大型库.这意味着我正在寻找一个小型,稳定的AOP实现,使用类似于我所提出的注释,易于在每个Web应用程序中进行配置.表现也很重要.用AOP实现这个最简单的例子是什么? 编辑:我找到了我正在寻找的something very similar,但这有一些问题.必须配置需要日志记录的所有类,这将比仅使用注释更为资源密集.弹簧配置是否可以使用< aop:aspectj-autoproxy />修复了 解决方法
看起来像面向对象编程(AOP)可以真正帮助您.很好的解决诸如记录和跟踪等交叉问题,它支持像您所需要的注释.
看看AspectJ或Spring AOP. 它将涉及到一些AOP原则和您选择的API的学习,但它绝对值得的努力.特别是记录和跟踪是您将遇到的第一个AOP教程,它很容易做,而不必进一步深入. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |