存在并发情景情况下,日志应该怎样写。
log.info("入参")
log.info("出参")
如果直接在用的地方写log.info,当两个用户同时使用程序时,日志就乱了
我把日志做成StringBuff在方法中传递,但是这样方法的入参和出参都会带有这个stringBuff。
入参还好说,但出参只有一个位置,如果用map来作为出参,将会降低代码的可读性
方法的出参还是原本使用到的对象,但是日志并发的问题也要解决
Trace ID会是不错的解决方案。同一个业务流程,使用同一个Trace ID标识即可。
增加日志元数据把日志串起来,也就是在每条日志中加traceID这种,就是往MDC里写一个请求ID然后写进日志的pattern中,spring生态有现成的分布式日志链路追踪组件sleuth加zipkin,也可以选择收集到elk做可视化
在日志上把并发日志做不同标识
并不并发你不是都有线程号么?