java过滤器实现操作日志_springboot中过滤器的使用(日志记录)

本文档详细介绍了如何在SpringBoot项目中使用过滤器(Filter)实现操作日志记录。通过创建`CommonConfig`接口定义常量,`WebFilterDemo`过滤器类实现请求和响应的拦截,`LogTrace`类处理日志信息,`WebConfig`配置过滤器,以及`ControllerReponseAdvice`控制器增强,实现了对HTTP请求的完整日志跟踪。在实际运行中,注册用户时,可以看到详细的日志输出,包括请求开始时间、消耗时间、IP、请求路径、响应数据等信息。
摘要由CSDN通过智能技术生成

本案例主要是实际开发中使用过滤器进行日志记录

pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.1.1.RELEASE

com.cn.dl

springbootfilterdemo

0.0.1-SNAPSHOT

springbootfilterdemo

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

com.alibaba

fastjson

1.2.47

org.projectlombok

lombok

org.springframework.boot

spring-boot-maven-plugin

1、CommonConfig

package com.cn.dl.common;

/**

* Created by Tiger on 2018/10/29.

*/

public interface CommonConfig {

String START_TIME = "startTime";

String IP = "ip";

String CONSUME_TIME = "consumeTime";

String REQ_PATH = "reqPath";

String RES_BODY = "resBody";

String LOG_PREFIX = "logData==";

String TRACE_ID = "tarceId";

String LOG_TYPE = "logType";

String START = "start";

String END = "end";

String MODULE = "module";

String SESSION_ID = "sessionId";

String OPERATE_RESULT = "operateResult";

}

2、WebFilterDemo

package com.cn.dl.filter;

import com.cn.dl.common.CommonConfig;

import com.cn.dl.logtrace.LogTrace;

import org.jboss.logging.MDC;

import javax.servlet.*;

import javax.servlet.annotation.WebFilter;

import java.io.IOException;

import java.util.UUID;

/**

* Created by yanshao on 2018/12/26.

*/

// TODO: 2018/12/26 如果不使用这个注解,可以用@Configuration中做一下配置

@WebFilter(urlPatterns = "/*")

public class WebFilterDemo implements Filter {

@Override

public void init(FilterConfig filterConfig) throws ServletException {

System.out.println("过滤器init>>>>>>>>>>>>>>>>>");

}

@Override

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

System.out.println("过滤器doFilter>>>>>>>>>>>>>>>>>开始");

LogTrace logTrace = new LogTrace();

logTrace.generateTraceId();

logTrace.printPreLog(servletRequest);

filterChain.doFilter(servletRequest, servletResponse);

logTrace.printAfterLog(servletRequest);

System.out.println("过滤器doFilter>>>>>>>>>>>>>>>>>结束");

}

@Override

public void destroy() {

System.out.println("过滤器destroy>>>>>>>>>>>>>>>>>");

}

}

3、LogTrace

package com.cn.dl.logtrace;

import com.alibaba.fastjson.JSONObject;

import com.cn.dl.common.CommonConfig;

import com.cn.dl.utils.NetUtils;

import lombok.extern.slf4j.Slf4j;

import org.slf4j.Logger;

import org.slf4j.LoggerF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值