Maison  >  Article  >  développement back-end  >  Python analyse les fichiers journaux au format XML

Python analyse les fichiers journaux au format XML

高洛峰
高洛峰original
2017-02-28 09:19:521309parcourir

Bonjour à tous. Comme je n'ai pas retrouvé mon état normal pendant le Nouvel An chinois, je n'ai pas partagé une vague de connaissances depuis longtemps. Aujourd'hui, je vais continuer à partager avec vous une vague de petites choses. scripts pour analyser les journaux en Python.

Tout d’abord, regardons à quoi ressemble le journal.

Python analyse les fichiers journaux au format XML

Ils sont tous au format XML. Vous avez le vertige rien qu'en les regardant ? ? C'est bon, analysons-le d'abord.

1. Le début de chaque paragraphe est catalina-exec, nous le diviserons donc en fonction de catalina-exec. Après la division, ils seront divisés en paragraphes.

2. Ensuite, nous allons le diviser en segments qui ont été divisés et trouver les mots-clés que vous souhaitez segmenter. Parce qu'il s'agit de XML, le travail suivant est simple, il s'agit d'un seul en-tête. .

3. Mais il y a un autre problème. Il est possible que certains d'entre eux n'aient pas les mots-clés que vous souhaitez, vous devez donc juger s'il n'y a pas un tel champ, alors je définirai ce champ comme étant vide. .

Lorsque les idées seront claires, le code deviendra naturellement plus simple.

Jetons ensuite un coup d'œil au code

#coding:utf-8 
import re 
#文本所在TXT文件 
file = 'iag_interface.log' 
#分割一段 
xml1='catalina-exec' 
xml2='catalina-exec' 
#关键字reqtimestamp 
time1 = &#39;<timestamp>&#39; 
time2 = &#39;</timestamp>&#39; 
#关键字functionid 
functionid1 = &#39;<functionid>&#39; 
functionid2 = &#39;</functionid>&#39; 
#关键字transid 
transid1=&#39;<transid>&#39; 
transid2=&#39;</transid>&#39; 
#关键字siappid 
siappid1=&#39;<siappid>&#39; 
siappid2=&#39;</siappid>&#39; 
#关键字userid 
userid1=&#39;<userid>&#39; 
userid2=&#39;</userid>&#39; 
#关键字mobnum 
mobnum1=&#39;<mobnum>&#39; 
mobnum2=&#39;</mobnum>&#39; 
f = open(file,&#39;r&#39;,encoding= &#39;utf-8&#39;) 
#f = open(file,&#39;r&#39;) 
#for (num,value) in enumerate(f): 
 #print("line number",num,"is:",value) 
buff = f.read() 
#清除换行符,请取消下一行注释 
#buff = buff.replace(&#39;\n&#39;,&#39;&#39;) 
pat = re.compile(time1+&#39;(.*?)&#39;+time2,re.S) 
pat1 = re.compile(functionid1+&#39;(.*?)&#39;+functionid2,re.S) 
pat2 = re.compile(transid1+&#39;(.*?)&#39;+transid2,re.S) 
pat3 = re.compile(siappid1+&#39;(.*?)&#39;+siappid2,re.S) 
pat4 = re.compile(userid1+&#39;(.*?)&#39;+userid2,re.S) 
pat5 = re.compile(mobnum1+&#39;(.*?)&#39;+mobnum2,re.S) 
pat6=re.compile(xml1+&#39;(.*?)&#39;+xml2,re.S) 
result6 = pat6.findall(buff) 
print(len(result6)) 
x = open("logfx.txt", &#39;w&#39;) 
x.write("===========================开始数据================================="+"\n") 
x.write("time"+"\t"+"functionid"+"\t"+"transid"+"\t"+"siappid"+"\t"+"userid"+"\t"+"mobnum"+"\n") 
for i in range(0,len(result6)): 
 result = pat.findall(result6[i]) 
 result1 = pat1.findall(result6[i]) 
 result2 = pat2.findall(result6[i]) 
 result3 = pat3.findall(result6[i]) 
 result4 = pat4.findall(result6[i]) 
 result5 = pat5.findall(result6[i]) 
 if len(result)==0: 
  result.append("空") 
 if len(result1)==0: 
  result1.append("空") 
 if len(result2)==0: 
  result2.append("空") 
 if len(result3)==0: 
  result3.append("空") 
 if len(result4)==0: 
  result4.append("空") 
 if len(result5)==0: 
  result5.append("空") 
 #print(result[0],"=",result1[0],"=",result2[0],"=",result3[0],"=",result4[0],"=",result5[0]) 
 x.write("timestamp:"+result[0]+"\t"+result1[0]+"\t"+result2[0]+"\t"+result3[0]+"\t"+result4[0]+"\t"+"mobnum:"+result5[0]+"\n") 
x.write("===========================结束数据================================="+"\n")  
print("执行完毕!生成文件logfx.txt") 
x.close()

Exécutez le code

Python analyse les fichiers journaux au format XML

Python a analysé les fichiers journaux au format XML et a exécuté avec succès toutes les données. Vérifiez ensuite le fichier

Python analyse les fichiers journaux au format XML

D'accord.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour plus d'articles liés à l'analyse python des fichiers journaux au format XML, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn