python统计错误日志

python统计错误日志示例:从日志文件中读取内容,正常日志为时间戳开头,发生错误则打印错误。
代码逻辑:
按行读取日志文件,正则匹配开头是日期格式的行,如果没有匹配到说明发生了错误,记录错误信息,存入字典


image.png
import re
import json
findstr = {}
detail = []
regx = re.compile(r'\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}\]')
tag = 0
with open('20190812.txt', 'r', encoding='utf-8') as log:
    for line in log:
        ret = regx.match(line)
        if ret:
            if tag == 1:
                # s = str(detail)
                findstr[tmp]=detail
                # print(s)
            tag = 0
            tmp = line.replace('\n','')
            detail = []

        else:
            tag = 1
            detail.append(line.replace('\n',''))
for key in findstr:
    print(key)
    s = '\n'.join(findstr[key])
    print(s)
with open('error_log.json','w') as log:
    json.dump(findstr,log,indent=4)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,465评论 0 5
  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 2,014评论 0 6
  • 第一部分 创建爬虫 重点介绍网络数据采集的基本原理 : 如何用 Python 从网络服务器 请求信息,如何对服务器...
    万事皆成阅读 2,181评论 0 5
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,937评论 0 8
  • CloudJavaBackendSummaries1、开发环境eclipse工程,引入jw仓库的jw-base,3...
    燕京博士阅读 1,148评论 0 0