使用log4j2 打印日志转到console输出,并发场景下发现出现日志串行,别的线程的日志跑到本日志了

问题遇到的现象和发生背景

使用log4j2 打印日志转到console输出,并发场景下发现出现日志串行,别的线程的日志跑到本日志了

用代码块功能插入代码,请勿粘贴截图
log.info("aaa" + context.getRequestID() + "initialization start 1111111111111");
        log.info("aaa" + context.getRequestID() + "initialization start 222222222222");
        log.info("aaa" + context.getRequestID() + "initialization start 333333333333");
        log.info("aaa" + context.getRequestID() + "initialization start 44444444444");
        log.info("aaa" + context.getRequestID() + "initialization start 55555555555");
        log.info("aaa" + context.getRequestID() + "initialization start 6666666666");
        log.info("aaa" + context.getRequestID() + "initialization start 77777777777");
        log.info("aaa" + context.getRequestID() + "初始化成功 1111111111111");
        log.info("aaa" + context.getRequestID() + "初始化成功 222222222222");
        log.info("aaa" + context.getRequestID() + "初始化成功 333333333333");
        log.info("aaa" + context.getRequestID() + "初始化成功 44444444444");
        log.info("aaa" + context.getRequestID() + "初始化成功 55555555555");
        log.info("aaa" + context.getRequestID() + "初始化成功 6666666666");
        log.info("aaa" + context.getRequestID() + "初始化成功 77777777777");
        log.info("aaa" + context.getRequestID() + "请求转化成功 1111111111111");
        log.info("aaa" + context.getRequestID() + "请求转化成功 222222222222");
        log.info("aaa" + context.getRequestID() + "请求转化成功 333333333333");
        log.info("aaa" + context.getRequestID() + "请求转化成功 44444444444");
        log.info("aaa" + context.getRequestID() + "请求转化成功 55555555555");
        log.info("aaa" + context.getRequestID() + "请求转化成功 6666666666");
        log.info("aaa" + context.getRequestID() + "请求转化成功 77777777777");

运行结果及报错内容
[2022-12-01 17:11:54.671 INFO  main.java:17] aaab7c801cc-4e58-4200-b163-2c2ac8786e30initialization start 1111111111111
[2022-12-01 17:11:54.671 INFO  main.java:18] aaab7c801cc-4e58-4200-b163-2c2ac8786e30initialization start 222222222222
[2022-12-01 17:11:54.672 INFO  main.java:20] aaab7c801cc-4e58-4200-b163-2c2ac8786e30initialization start 44444444444
[2022-12-01 17:11:54.672 INFO  main.java:21] aaab7c801cc-4e58-4200-b163-2c2ac8786e30initialization start 55555555555
[2022-12-01 17:11:54.672 INFO  main.java:22] aaab7c801cc-4e58-4200-b163-2c2ac8786e30initialization start 6666666666
[2022-12-01 17:11:54.672 INFO  main.java:23] aaab7c801cc-4e58-4200-b163-2c2ac8786e30initialization start 77777777777
[2022-12-01 17:11:54.671 INFO  main.java:17] aaae6c885a2-4d4d-4f85-8ed9-1f376820db73initialization start 1111111111111
[2022-12-01 17:11:54.672 INFO  main.java:25] aaab7c801cc-4e58-4200-b163-2c2ac8786e30初始化成功 222222222222
[2022-12-01 17:11:54.672 INFO  main.java:26] aaab7c801cc-4e58-4200-b163-2c2ac8786e30初始化成功 333333333333
[2022-12-01 17:11:54.672 INFO  main.java:27] aaab7c801cc-4e58-4200-b163-2c2ac8786e30初始化成功 44444444444
[2022-12-01 17:11:54.672 INFO  main.java:28] aaab7c801cc-4e58-4200-b163-2c2ac8786e30初始化成功 55555555555
[2022-12-01 17:11:54.672 INFO  main.java:29] aaab7c801cc-4e58-4200-b163-2c2ac8786e30初始化成功 6666666666
[2022-12-01 17:11:54.672 INFO  main.java:30] aaab7c801cc-4e58-4200-b163-2c2ac8786e30初始化成功 77777777777
[2022-12-01 17:11:54.672 INFO  main.java:31] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求转化成功 1111111111111
[2022-12-01 17:11:54.672 INFO  main.java:32] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求转化成功 222222222222
[2022-12-01 17:11:54.673 INFO  main.java:33] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求转化成功 333333333333
[2022-12-01 17:11:54.675 INFO  main.java:34] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求转化成功 44444444444
[2022-12-01 17:11:54.675 INFO  main.java:35] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求转化成功 55555555555
[2022-12-01 17:11:54.675 INFO  main.java:36] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求转化成功 6666666666
[2022-12-01 17:11:54.675 INFO  main.java:37] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求转化成功 77777777777
[2022-12-01 17:11:54.678 INFO  main.java:51] aaa2c957928-0de8-437c-a50f-3f50b36cc041请求结束 77777777777
[2022-12-01 17:11:54.678 INFO  main.java:38] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求执行成功 1111111111111
[2022-12-01 17:11:54.678 INFO  main.java:39] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求执行成功 222222222222
[2022-12-01 17:11:54.679 INFO  main.java:40] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求执行成功 333333333333
[2022-12-01 17:11:54.679 INFO  main.java:41] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求执行成功 44444444444
[2022-12-01 17:11:54.768 INFO  main.java:42] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求执行成功 55555555555
[2022-12-01 17:11:54.768 INFO  main.java:43] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求执行成功 6666666666
[2022-12-01 17:11:54.768 INFO  main.java:30] aaa9a9fb8cb-6ac5-4bc6-987d-39783d00931c初始化成功 77777777777
[2022-12-01 17:11:54.768 INFO  main.java:44] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求执行成功 77777777777
[2022-12-01 17:11:54.769 INFO  main.java:45] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求结束 1111111111111
[2022-12-01 17:11:54.769 INFO  main.java:46] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求结束 222222222222
[2022-12-01 17:11:54.769 INFO  main.java:47] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求结束 333333333333
[2022-12-01 17:11:54.769 INFO  main.java:48] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求结束 44444444444
[2022-12-01 17:11:54.769 INFO  main.java:49] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求结束 55555555555
[2022-12-01 17:11:54.769 INFO  main.java:50] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求结束 6666666666
[2022-12-01 17:11:54.769 INFO  main.java:51] aaab7c801cc-4e58-4200-b163-2c2ac8786e30请求结束 77777777777

我的解答思路和尝试过的方法

加ThreadContext,串的少了,但没解决

我想要达到的结果

打印的日志只包含

aaab7c801cc-4e58-4200-b163-2c2ac8786e30

并发输出日志,本来就是 有先有后的。 除非你 你让你的请求处理,只支持单线程处理,日志 才按顺序打印。不过这也不符合并发的要求。