如何处理业务日志和业务逻辑?

第一上帝 2015-03-04 11:15:10
如果处理日志和业务逻辑,成为目前解耦的一个难题。
在项目中,往往会发现书写日志的代码往往会大于真正的业务逻辑代码,造成代码阅读上的困难。
然而,把日志从应用逻辑中分离出去却有非常困难。

当前,流行的分离日志和业务逻辑的方法是使用AOP,从另一个角度来说,也是AOP应用较多的领域之一。
但是,使用AOP进行日志分离也有着严重的问题。
当前AOP主要分为Spring的无内浸性AOP,以及AspectJ的内侵式AOP。
使用AspectJ,需要专门的AspectJ编译器,太过强制性。
使用Spring的AOP的话,由于Spring的AOP是基于JAVA的动态代理功能上构建的,只能在方法的前后进行AOP插入,限制了其应用的范围,尤其是对于日志信息来说,仅仅在方法调用前后记录日志,肯定是不够的。

如果处理日志信息的代码就要写在每个类里,这样,造成的后果是每个类都要记录自己的信息,都与日志模块耦合在了一起。这也是我们所不希望看到的。
虽然当前的AOP技术不能完全解决日志分离的问题,我们仍然希望,把日志信息的记录集中在一,二个模块中,或者,几个“切面”中。可以方便的开启关闭,看到整体的业务日志记录,便于增加,修改,移除。

同时,在此提出新的问题,软件的正常运行,需要监控其稳定性,性能等指标。这就需要我们提供相应的接口来记录这些信息。这些信息与日志信息的情况相同,在整个系统中广泛存在。同样存在着如何提供接口,如何记录的问题。
至此,这个问题还处在迷茫中,看看大家都是怎么处理这一问题的,希望能有说收获。
...全文
889 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
欧阳映雪 2017-01-20
  • 打赏
  • 举报
回复
也在思考同样的问题,可以一起讨论。QQ: 342279918
Justin-Liu 2015-03-05
  • 打赏
  • 举报
回复
在项目中,往往会发现书写日志的代码往往会大于真正的业务逻辑代码,造成代码阅读上的困难。 下面的太多就没看 为什么日志的代码大于业务逻辑的代码? 日志就一句话就可以了吧?

1,759

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 企业信息化
社区管理员
  • 企业信息化
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧