zoukankan      html  css  js  c++  java
  • 日志段信息过滤

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

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

      

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

        

      那么其实我就是想获取含有'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('
    ')
            file.close()
    
        #主要过滤实现
        for line in list:
            if tag == 0:
                file_data = file_data + line + '
    '
            if "Ir  file:function" in line:
                tag = 1
                file_data = file_data + '--------------------------------------------------------------------------------
    '
            if ‘loops-fast’ in line and tag == 1:
                file_data = file_data + line + '
    '
                functionIr2dict(line,dire_ir)
            if "Auto-annotated source" in line and tag == 1:
                tag = 0
                file_data = file_data + '--------------------------------------------------------------------------------
    '
                file_data = file_data + line + '
    '
    
        with open(filename,'w',encoding='utf-8') as file:
            file.write(file_data)
            file.close()
  • 相关阅读:
    grep: Linux基础命令及用法 -- grep
    [功能集锦] 003
    [功能集锦] 002
    [mysql相关集锦] 001
    [eclipse中使用Git插件] 008
    [eclipse相关] 001
    [代码优化集锦]
    [功能集锦] 001
    [java基础] 002
    [java基础] 001
  • 原文地址:https://www.cnblogs.com/leezoey/p/10440473.html
Copyright © 2011-2022 走看看