Administrator
23 分钟以前 2f2516749615da866e96d8d24e499b7ecbb63a3e
log_module/log_analyse.py
@@ -62,38 +62,45 @@
# 分析L2数据传输时间
def analyze_l2_data_transformation(path_):
    with open(path_, 'r') as f:
        while True:
            line = f.readline()
    with open(path_, 'r', encoding="utf-8") as f:
        lines = f.readlines()
        for line in lines:
            if not line:
                break
            datas = line.split("|")
            create_time = datas[0].strip()
            data = datas[2].split("-")[1].strip()
            code = data.split("#")[0]
            l2_data = data.split("#")[1]
            l2_data = eval(l2_data)
            max_time_data = None
            min_time_data = None
            for d in l2_data:
                if len(d) > 10:
                    if max_time_data is None:
                        max_time_data = d
                    if min_time_data is None:
                        min_time_data = d
                    if d[10] > max_time_data[10]:
                        max_time_data = d
                    if d[10] < min_time_data[10]:
                        min_time_data = d
            if max_time_data and min_time_data:
                dt = datetime.datetime.strptime(create_time.split(".")[0], "%Y-%m-%d %H:%M:%S")
                create_timestamp = int(dt.timestamp() * 1000) + int(create_time.split(".")[1])
                if create_timestamp - min_time_data[10] > 20:
                    print(create_time, f"数量:{len(l2_data)}", code, create_timestamp - min_time_data[10],
                          create_timestamp - max_time_data[10])
            try:
                datas = line.split("|")
                create_time = datas[0].strip()
                data = datas[2].split(" - ")[1].strip()
                contents = data.split("#")
                code = contents[0]
                use_time = int(contents[1].strip().split(":")[1].split("-")[-2])
                l2_data = contents[2]
                l2_data = eval(l2_data)
                max_time_data = None
                min_time_data = None
                for d in l2_data:
                    if len(d) > 10:
                        if max_time_data is None:
                            max_time_data = d
                        if min_time_data is None:
                            min_time_data = d
                        if d[10] > max_time_data[10]:
                            max_time_data = d
                        if d[10] < min_time_data[10]:
                            min_time_data = d
                if max_time_data and min_time_data:
                    dt = datetime.datetime.strptime(create_time.split(".")[0], "%Y-%m-%d %H:%M:%S")
                    create_timestamp = int(dt.timestamp() * 1000) + int(create_time.split(".")[1])
                    if use_time > 100:
                        print(create_time, f"数量:{len(l2_data)}", f"耗时:{use_time}", code,
                              create_timestamp - min_time_data[10],
                              create_timestamp - max_time_data[10])
            except:
                print(line)
                pass
        pass
if __name__ == "__main__":
    analyze_l2_data_transformation("D:\\logs\\huaxin_l2\\orderdetail.2023-08-23.log")
    analyze_l2_data_transformation("D:\\logs\\huaxin_l2\\orderdetail.2023-08-29.log")