一、首先由同事的操作日志说起
同事做了一个这样的操作日志,他定义系统所有发的json加入这两个字段,module和msg,然后在service里面用注解@Log拦截,即可记录对应的操作日志。
{
module:“xx模块”
msg:“操作信息”
data:”系统本身要发的业务请求数据
}
我一开始深以为然,因为我自己的做法是这样的,本来打算用注解,然后定义了一张日志表,发现用的接口数量不多,而且读写库操作耗费性能,在不增加系统复杂度的情况下没有使用消息队列,最终使用了最简单的代码侵入
{ //业务代码blabla xxxxx ..... //日志代码 log xx 。。。。 }
二、公司大牛的解释
随后公司大牛听到我们的讨论,说明了一些问题首先,我前端本身为什么要关注你这个东西?这样不就把前端后端绑架的死死的吗?
其次,假如我想要看一个班级的老师名称做了什么事情,但是我看到一堆日志都是这样的
{ classId:1 }
也就是说我要看老师我还得自个调一次数据库去查class表,这样怎么行。
大牛的建议是,切面可以用,但是灵活性不高,就像上面我要查一个班级的老师,如果前期需要记录日志的接口数不多,先代码侵入吧,记录的还挺详细。