天天看點

使用者行為日志

@Data
@NoArgsConstructor
@AllArgsConstructor
public class LogObject {

    /** 日志動作類型 */
    private String action;

    /** 使用者 id */
    private Long userId;

    /** 目前時間戳 */
    private Long timestamp;

    /** 用戶端 ip 位址 */
    private String remoteIp;

    /** 日志資訊 */
    private Object info = null;
}      
/**
 * <h1>日志生成器</h1>
 */
@Slf4j
public class LogGenerator {

    /**
     * <h2>生成 log</h2>
     * @param request {@link HttpServletRequest}
     * @param userId 使用者 id
     * @param action 日志類型
     * @param info 日志資訊, 可以是 null
     * */
    public static void genLog(HttpServletRequest request, Long userId, String action, Object info) {

        log.info(
                JSON.toJSONString(
                        new LogObject(action, userId, System.currentTimeMillis(), request.getRemoteAddr(), info)
                )
        );
    }
}      

使用: 

@ResponseBody
    @PostMapping("/createuser")
    Response createUser(@RequestBody User user) throws Exception {

        LogGenerator.genLog(
                httpServletRequest,
                -1L,
                LogConstants.ActionName.CREATE_USER,
                user
        );
        return userService.createUser(user);
    }      
/**
 * <h1>日志記錄常量定義</h1>
 */
public class LogConstants {

    /**
     * <h2>使用者動作名稱</h2>
     * */
    public class ActionName {

        /** 使用者檢視優惠券資訊 */
        public static final String USER_PASS_INFO = "UserPassInfo";

        /** 使用者檢視已使用的優惠券資訊 */
        public static final String USER_USED_PASS_INFO = "UserUsedPassInfo";

        /** 使用者使用優惠券 */
        public static final String USER_USE_PASS = "UserUsePass";

        /** 使用者擷取庫存資訊 */
        public static final String INVENTORY_INFO = "InventoryInfo";

        /** 使用者領取優惠券 */
        public static final String GAIN_PASS_TEMPLATE = "GainPassTemplate";

        /** 使用者建立評論 */
        public static final String CREATE_FEEDBACK = "CreateFeedback";

        /** 使用者擷取評論 */
        public static final String GET_FEEDBACK = "GetFeedback";

        /** 建立使用者 */
        public static final String CREATE_USER = "CreateUser";
    }
}      

轉載于:https://www.cnblogs.com/yintingting/p/10348534.html