栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot配置日志切面记录入参和出参

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot配置日志切面记录入参和出参

日志切面配置按如下3个步骤进行

1.LogAop文件内容如下:
package com.ahunicom.parking.config;


import com.alibaba.fastjson.JSONObject;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

@Aspect
@Configuration
public class LogAop {

    private static final Logger logger = LoggerFactory.getLogger(LogAop.class);

    @Pointcut(value = "execution(public * com.ahunicom.parking.controller..*(..))")
    public void execute(){
    }

    @Around("execute()")
    public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)requestAttributes;
        HttpServletRequest httpServletRequest = servletRequestAttributes.getRequest();

        String uri = httpServletRequest.getRequestURI();
        String method = httpServletRequest.getMethod();
        String queryString = httpServletRequest.getQueryString();
        Object[] args = pjp.getArgs();
        String params = "";
        if(args.length > 0){
            if("POST".equals(method) ){
                for(Object o:args){
                    if(null!=o){
                        Map map = getKeyAndValue(o);
                        if(!map.isEmpty()){
                            params += JSONObject.toJSONString(map);
                        }
                    }
                }

            }else if("GET".equals(method)){
                params = queryString;
            }
        }

        long beginTime = System.currentTimeMillis();
        logger.info("请求URI:{},方法:{},参数:{}",uri,method,params);

        Object result = pjp.proceed();

        logger.info("请求结束,返回参数:{}",JSONObject.toJSONString(result));
        long endTime = System.currentTimeMillis();
        long time = endTime - beginTime;
        logger.info("执行时长:{}mm",time);
        return result;
    }

    public static Map getKeyAndValue(Object object){
        Map map = new HashMap();
        Class uCla = (Class)object.getClass();

        if(!(uCla.getPackage().getName().startsWith("com.ahunicom")
                || uCla.getPackage().getName().startsWith("java.") )){
            return map;
        }

        Field[] fs = uCla.getDeclaredFields();
        for(int i=0;i 
2.logback文件配置如下: 


    
	
   
	

    
	
		
			${log.pattern}
		
	

    
	
	    ${log.path}/info.log
        
		
            
			${log.path}/info.%d{yyyy-MM-dd}.log
			
			7
		
		
			${log.pattern}
		
		
            
            INFO
            
            ACCEPT
            
            DENY
        
	

    
	    ${log.path}/error.log
        
        
            
            ${log.path}/error.%d{yyyy-MM-dd}.log
			
			7
        
        
            ${log.pattern}
        
        
            
            ERROR
			
            ACCEPT
			
            DENY
        
    

    
	
	
	

	
		
	
	
	
    
        
        
    

3.pom.xml文件添加如下依赖:

	org.springframework.boot
   spring-boot-starter-aop

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009596.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号