奔跑的鹏鹏 | 作者
urlify.cn/fAjMRf | 来源
提到日志 ,作为java开发人员,第一反应向导的应该都是log4j、logback等技术组件,但是在微服务体系中,系统进行拆分之后,形成多个模块之后,如何用统一的标准进行记录操作日志,业界没有统一的标准,也没有统一的组件进行记录,原因主要是各业务系统对操作日志的定义要求、定义级别不同,例如:
案例1:对用户操作的所有记录进行记录,尤其是增删改模型实体业务数据;
案例2:对用户操作的所有记录记录进行记录,尤其是操作时机、操作结果;
针对操作日志,每个系统或企业经营业务领域不同、负责人知识面不同、以及系统等级不同,要求差异也很大,那如何在服务开发过程中,根据用户自定义的需求进行统一记录呢,本文将亲身经历进行讲述,废话不多说,我们开始!
方案一:业务网关进行记录。针对微服务分布式应用,前后端交互、系统之间交互,都是通过业务网关进行交易转发。因此,可以在业务网关通过拦截器的方式进行记录,这种记录只能记录操作时间、操作人、操作类型、操作结果、入参、出参等,无法记录数据实体模型的变化情况。这种方案的各应用无需单独实现,只需要在业务网关进行解析记录即可,后期改造难度小、影响小;缺点无法记录数据实体本身记录,且模块信息以及操作类型只能通过规范性进行约束。
方案二: