MDCFilter
package com.common.filter; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; import org.springframework.context.annotation.Configuration; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.util.UUID; @Configuration @Slf4j public class MDCFilter implements Filter { private static final String SESSION_KEY = "sessionId"; @Override public void init(FilterConfig filterConfig) { // } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; mdc(httpServletRequest); filterChain.doFilter(httpServletRequest, servletResponse); } @Override public void destroy() { // } public void mdc(HttpServletRequest httpServletRequest){ String url = httpServletRequest.getRequestURI(); MDC.put("RequestIP",httpServletRequest.getRemoteAddr()); MDC.put("Module",url); MDC.put("RemoteHost",httpServletRequest.getRemoteHost()); MDC.put("ServerPort",httpServletRequest.getServerPort()+""); MDC.put("ServerIP",httpServletRequest.getLocalAddr()); RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); String name = runtime.getName(); MDC.put("ProcessID ",name.substring(0, name.indexOf('@'))); MDC.put("Thread", Thread.currentThread().getName()); try{ String sessionId = UUID.randomUUID().toString().replace("-", ""); MDC.put(SESSION_KEY, sessionId); }catch (Exception e){ log.warn("-------------set SESSION_KEY 异常---------------", e); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2016-07-18 CodeSmith生成实体类