More robust processing of out of order log lines

This commit is contained in:
Miguel Angel Ajo 2015-10-29 12:35:45 +01:00
parent d95458a5f4
commit cda7f90f16
1 changed files with 17 additions and 11 deletions

View File

@ -11,6 +11,7 @@ class OpenStackLog:
self._filename = filename
def _extract_with_date(self, line):
try:
chunks = line.split(" ")
datetime_str = ' '.join(chunks[:2])
# this is likely to be not necessary, we can just compare
@ -21,6 +22,8 @@ class OpenStackLog:
pid, level = chunks[2], chunks[3]
rest = ' '.join(chunks[4:])
return (date_object, self._filename, pid, level, rest)
except IndexError:
return None
def log_entries(self):
entry = None
@ -30,6 +33,8 @@ class OpenStackLog:
break
try:
new_entry = self._extract_with_date(line)
if new_entry is None:
continue
if entry:
yield entry
entry = new_entry
@ -40,6 +45,7 @@ class OpenStackLog:
entry = (date_object, filename, pid, level,
rest + EXTRALINES_PADDING + line)
if entry:
yield entry