加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用注释进行跟踪记录

发布时间:2020-12-15 00:11:09 所属栏目:Java 来源:网络整理
导读:我一直在使用一个公司的代码库,该代码库具有编写大量跟踪记录的策略.所以每个方法都有一段代码开始如下: String LOG_METHOD = "nameOfMethod(String,ListLong):void";if(logger.isTraceEnabled()) { Object[] params = new Object[] { string,list }; logge
我一直在使用一个公司的代码库,该代码库具有编写大量跟踪记录的策略.所以每个方法都有一段代码开始如下:
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)); 
}

实际上有更多的代码,但这是基本的想法.
这是混乱的代码,其他编码器不断混乱与自己的解释,不使用特定的CompanyMessages类,这是需要格式化的信息要被监视工具读取.所以我正在寻找一种摆脱上述所有代码的方法,只需提供所有需要跟踪记录的方法,例如:@LogBefore(‘logLevel’)& @LogAfter( ‘记录等级’).

我选择这个解决方案的原因是让其他开发人员不必学习任何新东西,而是使用注释而不是代码.我在一个服务器环境中工作,我们部署了数百个Web应用程序和数十个开发人员.所以我一直在寻找一种在Web应用程序中实现这一点的方法,而不需要大量额外的编码或者额外的大型库.这意味着我正在寻找一个小型,稳定的AOP实现,使用类似于我所提出的注释,易于在每个Web应用程序中进行配置.表现也很重要.用AOP实现这个最简单的例子是什么?

编辑:我找到了我正在寻找的something very similar,但这有一些问题.必须配置需要日志记录的所有类,这将比仅使用注释更为资源密集.弹簧配置是否可以使用< aop:aspectj-autoproxy />修复了

解决方法

看起来像面向对象编程(AOP)可以真正帮助您.很好的解决诸如记录和跟踪等交叉问题,它支持像您所需要的注释.

看看AspectJ或Spring AOP.

它将涉及到一些AOP原则和您选择的API的学习,但它绝对值得的努力.特别是记录和跟踪是您将遇到的第一个AOP教程,它很容易做,而不必进一步深入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读