今天产品给我给我提了一个需求,要求我添加操做日志,记录登陆人对运营后台的操做详细过程,本人菜鸟一枚,记录一下个人思路和过程,等我成为大佬的时候方便自我吐槽!。程序员
产品要求:app
要求:测试
1、要求记录操做人的名字,操做电脑的ipspa
二、记录操做内容日志
目的:code
方便追溯责任,好比某管理员,审核了某个用户的申请,屏蔽了某我的的图片,冻结了某个用户等。当出问题的时候咱们能拿出证据。orm
个人思路:图片
开始的时候我是彻底按照产品需求作。步骤是这样的:ip
1、自定义注解,两个参数:操做描述(description),操做类型:(type)get
2、用Java的aop对每一个controller拦截
3、在每一个controller添加注解
相似这样
@SaveOperateControllerLog(descrption = "聊天室管理 => 公会列表==>新增或者编辑工会营业执照", actionType = 1)
@RequestMapping("/updateClubBiz")
public Result updateClubBiz(@RequestBody PlatformEntryClub club) {
try {
return Result.ok(clubService.updateClubBiz(club));
} catch (Exception e) {
log.error("错误信息:{}",e);
return Result.error(ResultCode.ERROR.getCode(),ResultCode.ERROR.getMessage());
}
}
天真的我觉得这样就能够了,可是产品说这个不行,让我好好思考下咱们作操做日志的目的,想一想日志该怎么记录。这里我反思了本身,我在一个小公司,我不知道大厂提需求是怎么样的,咱们公司会产品口头表述,而后出一份简单的原型。而我就死板的照着原型作,其实这是不对的,我认为无论在大厂仍是小公司,产品需求多么的详细,原型多么的完美,做为具体操做的者的咱们都应该反复的思考一下,这样是否可行,这样作的目的是什么(或者说功能是啥)、是否有能够改进的地方等等,最后才考虑我该怎么去实现这个功能。否则等你代码写好了,本身在洋洋得意的时候,忽然发现本身写的代码不对,或者说不能彻底知足需求。就算你和需求同样,产品一句话你还不是要改。同事有句话说得好:是你的需求始终是你的,若是能一次写好是最好的,改来改去谁都烦,主要是再烦你还不是要改。偏了,下面继续。
在百度上看了不少例子后的思路:
在以前的基础上添加:添加请求参数、访问方法名、方法参数、返回结果、执行时间等,我觉得此次完美了,可是并无,参数是全面了,可是可读性不强,程序员能看懂,可是产品看着就很吃力了。因此下面就写我第三次更改后的代码,其实我写这篇博客的时候(2019年11月30日01:44:11)第三版本代码尚未写,准备今天晚上写个demo测试下,明天添加到个人分支上。有时间在同步博客。菜鸟程序员不配拥有周末!!!!!!!!