日志段信息过滤

在日常的日志解析当中,我们可能需要实现对日志中的某一特殊段进行信息的过滤,

下面介绍一下我的常用方法。

  

针对这个日志输出信息,其实我主要关注的是下面这个日志段内的信息

    

  那么其实我就是想获取含有'loops-fast'这个字符串的数据,而过滤掉其他的干扰数据,我分为以下几个步骤实现

  • 首先要确定边界值,也就是你要截取的段的开头和结尾的特殊字段,这个很重要
  • 接着我们需要设置一个tag值,通过这个tag值我们可以判断当前是不是在需要过滤的日志段内
  • 编码的时候主要是通过tag值和关键字一起进行判断
  • 考虑到性能可以适当调整判断的顺序,也就是将需要大部分可能出现的判断提前了,并且在判断结束之后及时退出判断

  下面是实现的代码

    file_data = ""
    tag = 0
    with open(filename, "rb") as file:
        temp = str(file.read().decode('utf-8','ignore'))
        list = temp.split('\n')
        file.close()

    #主要过滤实现
    for line in list:
        if tag == 0:
            file_data = file_data + line + '\n'
        if "Ir  file:function" in line:
            tag = 1
            file_data = file_data + '--------------------------------------------------------------------------------\n'
        if ‘loops-fast’ in line and tag == 1:
            file_data = file_data + line + '\n'
            functionIr2dict(line,dire_ir)
        if "Auto-annotated source" in line and tag == 1:
            tag = 0
            file_data = file_data + '--------------------------------------------------------------------------------\n'
            file_data = file_data + line + '\n'

    with open(filename,'w',encoding='utf-8') as file:
        file.write(file_data)
        file.close()

 

转载于:https://www.cnblogs.com/leezoey/p/10440473.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值