在实际工作中除了采用Notpad++进行日志查找以外,还有一种更加简单的方法就是之间将需要的关键字日志进行提取的功能。该工具可以实现特定关键字提取和分析,该工具暂时实现功能点:
1.自动读取文件夹下的所有日志文件;
2.从日志文件中提取出所需要的关键字;
3.自动将日志文件解压到文件夹中【暂未实现,下周补齐】
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
name = '日志分析工具',
author = '$Mayongdong',
author_email = '$1362815397@qq.com',
description = '$自动从日志中提取关键字,用于问题定位'
date = '2020-03-07 15:54:00'
"""
import os
import re
import datetime
path = r"D:\CODE\LogAnalysis-master\SogouQ" #原始数据
target = open(r'D:\CODE\LogAnalysis-master\SogouQ\result.log', 'w') #结果输出
files= os.listdir(path) #得到文件夹下的所有文件名称
countX = []
for file in files: #遍历文件夹
if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开
f = open(path + "/" + file) #打开文件
iter_f = iter(f) #创建迭代器
print(iter_f) #输出每个文件
for line in iter_f: #遍历文件,一行行遍历,读取文本
if (line.find("error") > -1) or (line.find("fatal") > -1)or (line.find("exception") > -1)or (line.find("exception1") > -1):
result = re.findall(r'error|fatal|exception1|exception',line)
print(line)
target.writelines(line)
target.close()
now_time = datetime.datetime.now()
print(now_time,"自动化日志分析完成,详情请见result文件!!!")
上面代码可以实现从日志文件中将包含 error|fatal|exception1|exception几个关键字的日志所在行进行打印出来,实际效果如下:
代码比较简单,大佬请绕行,勿喷~~~~