在日志文件行中搜索多个关键字并找到返回错误字符串

时间:2017-02-12 07:30:16

标签: python python-2.7

我尝试创建此程序,打开.gz文件并查找多个异常。当我刚使用一个例外时,它正在工作。但我现在正试图获得多个例外,但它无法正常工作。

有人可以帮忙吗?

override func draw(_ rect: CGRect) {
    if let path = firstCharPath {
        path.stroke()
    }
    if let path = lineUsedRectPath {
        path.stroke()
    }
    if let path = baseLinePath{
        path.stroke()
    }
}

1 个答案:

答案 0 :(得分:0)

我相信此代码符合您的问题陈述。您的代码中的两个主要更改。

  1. 将错误消息和关键字放在同一数据结构中一起搜索。

  2. 循环数据结构并直接确定是否所有关键字都存在,如果不存储错误消息以供日后显示

  3. 请注意:我实际上没有测试此代码,因为我没有样本数据。

    <强>代码:

    import gzip
    
    errors_to_find = (
        ('task cocaLc Requested reboot', 
         ('REBINFO', 'cocaLc')),
        ('task tAlrmL1 Keep alive failed',
         ('dispute', 'peer', 'while', 'priority')),
        ('task cocaLc ASSERT failed', 
         ('fhAssert', 'REBINFO', 'HARDREBOOT')),
    )
    
    found_exc = []
    with gzip.open((raw_input("Enter File Name :")), 'r') as f:
        for line in f:
            for msg, key_words in errors_to_find:
    
                # for each keyword, test if it is in line 
                if sum([kw in line for kw in key_words]) == len(key_words):
                    found_exc.append(msg)
    
    for msg in found_exc:
        print "Exception Found : %s" % msg