Java 做自动化测试时开启多线程,怎么解决日志混乱的问题??

卡丁车卡丁丁 · 2024年05月20日 · 最后由 xinxjxjxj 回复于 2024年05月22日 · 5618 次阅读

比如有 A、B、C 三个类同时执行自动化测试,每个类中都有相应的 log.info("xxxx"),

这就导致了日志文件里面打印的日志都是穿插着 A、B、C 3 个类的,怎么使得他们打印的日志可以按照类的顺序排列起来??

比如原来的:

A 类 log1
B 类 log1
B 类 log2
A 类 log2
C 类 log1
C 类 log2

变成:
A 类 log1
A 类 log2
B 类 log1
B 类 log2
C 类 log1
C 类 log2

是不是必须得自己封装 log 方法,不能直接使用日志框架的 log 方法???

共收到 10 条回复 时间 点赞

用 allure, 每个 log 都记录到 case level?

输出到不同文件里面不就行了

前段时间刚遇到过这个问题,执行如果在执行过程中查看的日志,我也好奇如何区分开来,貌似不行吧。
从保存的文件里的话,只能每个线程创建一个实例 log 才可以。互不影响。

简单来说线程组是在抢资源,所以顺序就是乱的,你可以设置把不同的线程组日志放到不同的文件里面就可以了

可以用 mdc 存一个唯一 key,日志框架打日志的时候从 mdc 取这个 key 打出来,查的时候直接拿这个 key 查。顺序还是乱的这没法,除非你要打的都集中到一条里

根据日志类的元数据控制不同线程写到不同的地方

回复

那会有很多个日志文件吧。。。

根据你的需求这是最优的解决方式。我做压测也有类似输出每个用户日志流的需求,但是我的方法是在日志行默认输出用户编号,查看的时候进行筛选

回复

log 打印时本来就会带上所在的类名,按照你这种方式甚至都不用改

日志打印线程名,根据线程去定位日志

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册