操作日志的设计小结by大熊

时间:2025-04-07 09:02:55

一、首先由同事的操作日志说起

  同事做了一个这样的操作日志,他定义系统所有发的json加入这两个字段,module和msg,然后在service里面用注解@Log拦截,即可记录对应的操作日志。

{
module:“xx模块”
msg:“操作信息”
data:”系统本身要发的业务请求数据
}

  我一开始深以为然,因为我自己的做法是这样的,本来打算用注解,然后定义了一张日志表,发现用的接口数量不多,而且读写库操作耗费性能,在不增加系统复杂度的情况下没有使用消息队列,最终使用了最简单的代码侵入

{
//业务代码blabla
xxxxx
.....
//日志代码
log xx 。。。。
}

二、公司大牛的解释

  随后公司大牛听到我们的讨论,说明了一些问题首先,我前端本身为什么要关注你这个东西?这样不就把前端后端绑架的死死的吗?

  操作日志的设计小结by大熊

  其次,假如我想要看一个班级的老师名称做了什么事情,但是我看到一堆日志都是这样的

{
classId:
}

  也就是说我要看老师我还得自个调一次数据库去查class表,这样怎么行。

大牛的建议是,切面可以用,但是灵活性不高,就像上面我要查一个班级的老师,如果前期需要记录日志的接口数不多,先代码侵入吧,记录的还挺详细。