私はPythonの初心者プログラマーです。私は現在、ログファイルを解析し、クラスのすべての要素を完成させたクラスを構築しています。それにもかかわらず、Python のほとんどのことがうまくいかなかったので、クラスを間違ってフォーマットしたか、セマンティクスを台無しにしてしまいました。クラスを構築するための決定的な形式があるかどうか、そして私が書いたものがその形式に従っているかどうか疑問に思っていました。
ログからのいくつかの行は次のとおりです。
2012-06-12 14:02:21,813 [main] INFO ConnectionManager.java (line 238) Initializing the ConnectionManager.
2012-06-12 14:02:21,844 [main] INFO CimListener.java (line 142) Starting listener at http://127.0.0.1:7012
2012-06-12 14:02:21,974 [main] INFO CimListener.java (line 158) Listening at http://127.0.0.1:7012
2012-06-12 14:02:23,209 [main] INFO RmiServiceExporter.java (line 393) Looking for RMI registry at port '10099'
2012-06-12 14:02:23,232 [main] INFO RmiServiceExporter.java (line 404) Could not detect RMI registry - creating new one
そして、ここにクラスがあります:
import re
import time
import calendar
from datetime import datetime
f = open("C:\Users\-----\Desktop\Real Logs\controllersvc.log", "r")
while True:
line = f.readline()
if not line:
break
class LogLine:
SEVERITIES = ['EMERG','ALERT','CRIT','ERR','WARNING','NOTICE','INFO','DEBUG']
severity = 1
def __init__(self, line):
try:
timestr, msstr, sevstr, self.filename, linestr, self.message = re.match(r"^(\d\d\d\d-\d\d-\d\d[ \t]\d\d:\d\d:\d\d),(\d\d\d),(?i[a-z]+),([A-Za-z]{1,.}),([(]\[lL]ine\>\s+\d+[)]),^(?<=\)\s?\w+$)", line).groups()
self.line = int(linestr)
self.sev = self.SEVERITIES.index(sevstr)
self.time = float(calendar.timegm(time.strptime(timestr, "%Y-%m-%d %H:%M:%S,%f"))) + float(msstr)/1000.0
dt = datetime.strptime(t, "%Y-%m-%d %H:%M:%S,%f")
except Exception:
print 'error',self.filename
def get_time(self):
return self.time
def get_severity(self):
return self.sev
def get_message(self):
return message
def get_filename(self):
return filename
def get_line(self):
return line