Solon 操作日志的记录-Solon论坛-开发交流-祥拓软件

Solon 操作日志的记录

  • 创建 interface 类,如 LogOperation
    @Target({ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    public @interface LogOperation {
    
        String value() default "";
    
    }
  • 在controller方法上加入如下示例代码,括号里为自定义操作名称
    @LogOperation("修改/增加角色信息")
  • 应在启动的时候引入方法
    SolonApp app = Solon.start(WorkApp.class, args, solonApp -> {
    
    }
    
     private static void logOperationAop() {
            Solon.context().beanAroundAdd(LogOperation.class, inv -> {
                Context ctx = Context.current();
    // 使用sa-token 获取当前登录的用户
                SysUsers sysUsers = (SysUsers) StpUtil.getSession().get("user");
                long time = System.currentTimeMillis();
                Object rst = inv.invoke();
    // 在此可以写入相关的数据到数据库
    
    /**
                 *      ip: ctx.realIp()
                 *      自定义的名称: inv.method().getAnnotation(LogOperation.class).value()
                 *      执行时间: System.currentTimeMillis() - time
                 */
                return rst;
            });
        }

     

请登录后发表评论

    请登录后查看回复内容