@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