我们使用 MDC 记录所有带有 session Id 的事务,但有时它会附加错误的 sessiond
我正在筛选过滤器中的 sessionId
MDC.put("sessionId", request.getSession().getId());
日志输出
2015-01-24 23:13:04,857 INFO [STDOUT] (http-0.0.0.0-8090-28) [LOGBACK] 23:13:04.857 [INFO ] 371691C0B3B4481E9589BDE0C24F54C8 [Inbound Message][ID:319526][Address:http://195.233.91.82:8090/myacct/activate/updateConsent][Http-Method:POST][Content-Type:application/json; charset=UTF-8][Headers:{cookie=[JSESSIONID=371691C0B3B4481E9589BDE0C24F54C8;.....
2015-01-24 23:13:05,242 INFO [STDOUT] (http-0.0.0.0-8090-28) [LOGBACK] 23:13:05.242 [INFO ] 1434BC692D5059660EA0F8B36B143064 [Outbound Message][ID:319526][Response-Code:200][Content-Type:application/json;charset=utf-8].......
正如您所看到的,恢复的 sessionId 请求何时正确,以及何时记录响应时附加了错误的 sessionId,但两个日志的线程相同。
根据 MDC “MDC 是按线程管理的”
我做错了什么吗?