/**
* 生成LogModel
*
* @param logStatus 执行状态
* @param throwMsg 异常Message
* @return LogModel
*/
private LogModel generateLogModel(HttpServletRequest request, String logStatus, String throwMsg) {
LogModel logModel = new LogModel();
// 操作类型
logModel.setType(AopUtils.findAnnotation(logJoinPoint, AspectLog.class).logType().name());
// 操作类型
logModel.setLogStatus(logStatus);
// 操作描述
logModel.setDescribes(getDescribes());
// 操作类型
logModel.setMethod(request.getMethod());
// 请求地址Url
logModel.setRequestUrl(!ObjectUtils.isEmpty(request.getRequestURL()) ? request.getRequestURL().toString() : "");
// 操作系统
logModel.setOs(!ObjectUtils.isEmpty(UserAgentUtils.getOsName(request)) ? UserAgentUtils.getOsName(request) : "");
// 访问IP
logModel.setIp(getIpAddr(request));
// 浏览器
logModel.setBrowser(!ObjectUtils.isEmpty(UserAgentUtils.getBorderName(request)) ? UserAgentUtils.getBorderName(request) : "");
// 浏览器版本
logModel.setEdition(!ObjectUtils.isEmpty(UserAgentUtils.getBrowserVersion(request)) ? UserAgentUtils.getBrowserVersion(request) : "");
// 参数内容
logModel.setArgs(new Gson().toJson(logJoinPoint.getArgs()));
//异常信息
logModel.setThrowMsg(throwMsg);
// 返回
return logModel;
}
/**
* 获取IP地址
*/
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
}