作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Spring Boot 1.5.7。该应用程序提供 Restful API。我有一个过滤器,我在其中使用用户名和事务 ID 设置 MDC。
MDC.put("user", authentication.getPrincipal().toString());
MDC.put("trans-id",authentication.getTokenId());
我希望每个请求都有一个 MDC 映射,而不是在不同的请求之间共享 MDC 数据。
你能帮我一下吗?谢谢。
更新:
日志下面每一行都是一个http请求:
2017-11-10 21:34:52.867 | user=USER, trans-id=c28f4b68-b5f3-4b5c-9bb5-f18ba9d1cd7d, session-id=daaddaadda | INFO 976 - [tp1005246661-89] i.e.h.controller.IsAliveController : /isAlive WSC |
2017-11-10 21:34:59.551 | user=USER, trans-id=4a0eaec1-184a-4587-8fce-ab013ad6539b, session-id=daaddaadda | INFO 976 - [tp1005246661-89] i.e.h.controller.IsAliveController : /isAlive public |
在第二个请求中,我仅设置了 trans-id,而在 MDC 映射中,在第一个请求中设置了 session ID 和用户。
最佳答案
我假设您使用 logback 作为日志记录实现,并且在任何时间点,一个线程都在处理一个请求直到完成。根据documentation ,MDC 已经按线程存储,因此它足以满足您的用例。在我们的项目中,我们使用 MDC 来跟踪线程 id(而不是线程名称)以进行调试,它按预期工作
The MDC manages contextual information on a per thread basis. Typically, while starting to service a new client request, the developer will insert pertinent contextual information, such as the client id, client's IP address, request parameters etc. into the MDC
关于java - Logback sfl4j MDC对http请求是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47229016/
我在我的 rpg 程序中显示一个 sfl 屏幕,在一个字段中 WPROV ,我正在使用 F4=Help , 如果用户键入 F4,程序会显示 sfl 窗口帮助,但程序会删除旧屏幕和主屏幕,我只能看到帮助
我是一名优秀的程序员,十分优秀!