b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

spring aop处理功能操作日志和异常日志,留存到

电脑杂谈  发布时间:2019-08-15 02:02:46  来源:网络整理

spring aop异常_spring aop异常_spring aop 异常日志

package com.env.web.zj;

import java.text.SimpleDateFormat;

import java.util.Arrays;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;

import org.aspectj.lang.JoinPoint;

import org.aspectj.lang.annotation.AfterThrowing;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.aspectj.lang.annotation.Pointcut;

import org.aspectj.lang.reflect.CodeSignature;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import org.springframework.web.context.request.RequestContextHolder;

import org.springframework.web.context.request.ServletRequestAttributes;

import com.lq.dto.OperatorLog;

import com.lq.service.OperatorLogService;

@Aspect

@Component

public class test {

private static Logger logger = Logger.getLogger(test.class);

private static SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

@Autowired

spring aop 异常日志_spring aop异常_spring aop异常

private OperatorLogService<OperatorLog> operatorLogService; //自己创建spring aop异常,用于保留日志信息

@Pointcut("execution(* com.env.web.controller..*.*(..))") //切点

public void webRequestLog(){}

@Pointcut("execution(* com.env.web.controller..*.*(..))") //切点

public void webExceptionLog(){}

@Before("webRequestLog()")

public void doBefore(JoinPoint joinPoint){

try {

OperatorLog operatorLog = new OperatorLog();

ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletRequest request= attributes.getRequest();

String method = request.getMethod();

//分析是否是post方式,或者是spring aop异常,则记录到日记表中

// if("POST".equals(method)){

long beginTime = System.currentTimeMillis();

String beanName = joinPoint.getSignature().getDeclaringTypeName(); //原理所在的类名

String methodName = joinPoint.getSignature().getName()+"-"+method;//原理名

String param = JSONUtil.obj2StringPretty(request.getParameterMap());//请求参数

System.out.println(param);

String uri = request.getRequestURI(); //接口名

String url = request.getRequestURL().toString(); //url

String remoteAddr = getIpAddr(request); //ip地址

String sessionId = request.getSession().getId();

Integer uid = (Integer) request.getSession().getAttribute("uid"); //用户id

if(uid != null){

spring aop异常_spring aop异常_spring aop 异常日志

}

operatorLog.setMethod(methodName);

operatorLog.setBeanName(beanName);

operatorLog.setIntf(uri);

operatorLog.setUrl(url);

Date date = new Date(beginTime);

operatorLog.setRequestTime(date);

operatorLog.setRequestIp(remoteAddr);

operatorLog.setRequestParam(param);

operatorLogService.save(operatorLog);

//tlocal.set(operatorLog);

// }

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 异常通知 用于拦截异常日志

*

* @param joinPoint

* @param e

*/

@AfterThrowing(pointcut = "webExceptionLog()", throwing = "e")

public void doAfterThrowing(JoinPoint joinPoint, Throwable e) {

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

spring aop异常_spring aop 异常日志_spring aop异常

HttpSession session = request.getSession();

//获取请求ip

String ip = request.getRemoteAddr();

//获取用户请求方式的取值并序列化为JSON格式字符串

try {

String method = request.getMethod();

String param = JSONUtil.obj2StringPretty(request.getParameterMap());

System.out.println(param);

String beanName = joinPoint.getSignature().getDeclaringTypeName(); //原理所在的类名

String methodName = joinPoint.getSignature().getName()+"-"+method;//原理名

String uri = request.getRequestURI(); //接口名

String url = request.getRequestURL().toString(); //url

OperatorLog operatorLog = new OperatorLog();

operatorLog.setExceptionName(e.getClass().getName());

operatorLog.setExceptionMsg(e.getMessage());

operatorLog.setMethod(methodName);

operatorLog.setUrl(url);

operatorLog.setIntf(uri);

operatorLog.setRequestParam(param);

operatorLog.setBeanName(beanName);

long beginTime = System.currentTimeMillis();

Date date = new Date(beginTime);

operatorLog.setRequestTime(date);

operatorLog.setRequestIp(ip);

//保留

spring aop异常_spring aop 异常日志_spring aop异常

operatorLogService.save(operatorLog);

System.out.println("=====异常通知结束=====");

} catch (Exception ex) {

//记录本地异常日志

e.printStackTrace();

logger.error("==异常通知异常==");

}

}

/*@AfterReturning(returning="result",pointcut = "webRequestLog()")

public void doAfterReturning(Object result){

}

*/

private String getIpAddr(HttpServletRequest request){

String ip = request.getHeader("x-forwarded-for");

if(ip==null || ip.length()== || "unknowm".equalsIgnoreCase(ip)){

ip = request.getHeader("Proxy-Client-IP");

}

if(ip==null || ip.length()== || "unknowm".equalsIgnoreCase(ip)){

ip = request.getHeader("WL-Proxy-Client-IP");

}

if(ip==null || ip.length()== || "unknowm".equalsIgnoreCase(ip)){

ip = request.getRemoteAddr();

}

return ip;

}

}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-119276-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...