基本的にログファイルから行を取り出して解析し、解析されたデータを単純化された形式で返すプログラムを書いています。現在の私の主な問題は、日時のスターリングを解析する方法です。ログの行の例を次に示します。
ログファイルの例:
2012-06-12 14:02:16,341 [main] INFO ---
2012-06-12 14:02:16,509 [main] INFO ---
2012-06-12 14:02:17,000 [main] INFO ---
2012-06-12 14:02:17,112 [main] INFO ---
2012-06-12 14:02:20,338 [main] INFO ---
2012-06-12 14:02:21,813 [main] INFO ---
SO FARを解析する私のコード(非常に大まかな):
class LogLine:
SEVERITIES = ['EMERG','ALERT','CRIT','ERR','WARNING','NOTICE','INFO','DEBUG']
severity = 1
def __init__(self, line):
try:
t, s, self.filename, n, self.message =
re.match(r"^(\d\d\d\d-\d\d-\d\d[ \t]\d\d:\d\d:\d\d,\d\d\d)", line)
self.line = int(n)
self.sev = self.SEVERITIES.index(s)
self.time = time.strptime(t)
def get_t(self):
return
def get_severity(self):
return self.SEVERITIES.index(self)
def get_message(self):
return
def get_filename(self):
return
def get_line(self):
return
したがって、基本的に (私のひどいコードから推測できなかった場合)、正規表現を使用して文字列を解析し、日時を取得しています。また、これに対する可能な解決策として strptime についても読んでいます。最終的に、日時をミリ秒単位で解析し、それを日時のミリ秒単位の整数に追加する必要があります (カンマ区切り)
この質問は非常に複雑であり、事前にお詫び申し上げます。ご協力ありがとうございました。