我们开发的业务系统通常会提供给很多人使用,那在使用的过程中,日志系统变得非常重要。
日志系统记录的用户行为有以下的作用:
- 从系统用户角度看:它展示了用户自身的操作历史和具体对象的变动历史,便于用户进行梳理
- 从系统管理员角度看:它可以记录了所有用户操作,便于我们定位异常行为
例如,在git的project操作中,我们就可以看到这样的操作日志展示:
对于这样的日志记录,我们可以在相关记录点添加对应的日志写入代码或者通过切面实现。然而,这样的日志展示是相对简单的,只是记录了操作行为的种类。而有时我们需要记录每个操作行为对操作对象引发的具体变动,例如展示出这样的结果:
这给日志记录带来了不小的挑战:
- 在一个系统中,可能涉及到多种对象(例如,学生、课程、老师),而每个对象的属性是完全不一样的
- 在一次操作中,可能改变了对象的一个或者多个属性,这也使得我们极难逐一记录
而今天,我们要介绍的是一套简单易用的对象日志记录系统,借助于它,我们可以方便地实现对象属性变动的记录与查询。
该系统来源于开源项目ObjectLogger,地址为 https://github.com/yeecode/ObjectLogger 。感兴趣的小伙伴可以前往Star该项目。
而ObjectLogger的核心引用了开源项目ObjectLoggerClient,地址为 https://github.com/yeecode/ObjectLoggerClient 可以一并Star。
当然,该项目提供日志分析、记录、查询功能,前端页面的设计与展示交给使用者自己开发和优化,因此也保证了最大的自由度。接下来我们介绍该系统及其使用。
1 系统特点
该系统有着以下特点:
- 功能强大:部署完成后,可以支持日志的记录与查询,开发者只需再开发