python和log有啥区别_python分析log

importos,sys,csv,time,re,datetime;classcur_env:

path=sys.path[0]#print(path)

os.chdir(path)

result= path + '\\results'

classcsv_writer:#get the log file list in the folder

defget_files(self):

file_list=list()

files=os.listdir(cur_env.path)for file infiles:if file.endswith('.log'):

file_list.append(file)returnfile_list#generate result file name depend on run time

defgen_filename(self):

file_name= 'res_' + time.strftime('%y%m%d_%H%M%S',\

time.localtime(time.time()))+'.csv'

returnfile_name#create result folder if not exist

defcreate_resFolder(self):if notos.path.isdir(cur_env.result):

os.makedirs(cur_env.result)#write csv response time log

defwrite_csv(self, file_name, content):

csvfile= open(cur_env.result + '\\' + file_name,'w+', newline = '')

headers= ['FILE NAME','TIMING(S)','LINE COUNT','DESC','WARNING']try:

writer=csv.DictWriter(csvfile,headers)

writer.writeheader()for con incontent:

con=dict(zip(headers,con))

writer.writerow(con)#writer.writerow(headers)

#writer.writerows(content)

finally:delwriter

csvfile.close#generate contents from log files

defgen_contents(self, file_list):

content=list()for file infile_list:

log=logger(file)

log.generate_content()

logcnt=log.content

logcnt.insert(0,file)

content.append(logcnt)returncontentclasslogger:'''"generate 'TIMING','LINE COUNT','DESC','WARNING' from log files"'''

def __init__(self, file):

self.logfile= open(cur_env.path + '\\' +file,'r+')

self.content=dict()defgenerate_content(self):

text=self.logfile.read()#get total lines of the log file

lines = text.count('\n')

pattern= re.compile(r'\[.*\]')

lsttime=re.findall(pattern,text)if (lines <=0 or len(lsttime) <=0):

warning= 'Unknown issue. Please verify the format of your log file.'self.content= ['','','',warning]returnstart_time= str(lsttime[0])[1:-1]

end_time= str(lsttime[-1])[1:-1]#get desc. log start time & end time

desc = 'start time is:' + start_time + '. end time is:' +end_time#get the response time

timing = time.mktime(time.strptime(end_time,'%Y-%m-%d %H:%M:%S'))\- time.mktime(time.strptime(start_time,'%Y-%m-%d %H:%M:%S'))#verify if there is any error in the log

pattern = re.compile(r'[Ee][Rr][Rr][Oo][Rr]')

errors=len(re.findall(pattern,text))if (errors >0):

warning= 'Totally' + str(errors) + 'error(s) detected in the log.'

else:

warning= 'NA'

#generate result content

self.content =[str(timing),str(lines),desc,warning]

self.logfile.close()

# Testing code

writer=csv_writer()

writer.create_resFolder()

file_name=writer.gen_filename()

file_list=writer.get_files()

content=writer.gen_contents(file_list)

writer.write_csv(file_name, content)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值