gpt4 book ai didi

spring-mvc - 如何将整个 Web 请求的用户名插入 MDC

转载 作者:行者123 更新时间:2023-12-04 14:42:13 25 4
gpt4 key购买 nike

我正在尝试使用映射诊断上下文将发出页面请求的用户的用户名添加到所有相关的日志记录语句中。但是我已经尝试了三种不同的方法来让它工作但没有成功:

  1. 登录后将用户名推送到 MDC,注销后删除。此方法最终混淆了哪个日志语句来自哪个用户。
  2. 使用 ServletFilter 在每次页面加载时将用户名推送到 MDC,并在请求结束时将其弹出。这只会捕获一些数据,并且只在 Spring 安全层中。
  3. 在所有 Controller 方法前使用 AOP @Around 拦截器是行不通的。

有没有人对如何实现这一目标有任何建议?

最佳答案

MDC 有哪些问题? Spring 安全层 是什么意思?我在一个 Web 应用程序中使用了这种方法并且效果很好。因为 MDC 绑定(bind)到线程,来自该线程的所有日志语句都将设置用户名,即服务和存储库层。

当然,如果某些用户是通过使用线程(例如 servlet 3.0 异步处理、JMS 监听器、执行器)来提供服务的,那么您将需要其他方式将用户名注入(inject)线程池中的 MDC。

另见我的回答 here .

关于spring-mvc - 如何将整个 Web 请求的用户名插入 MDC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com