in loggy.py [0:0]
def parse_line(self, path, data):
for line in (line.rstrip() for line in data.split("\n")):
m = re.match(r"^<%JSON:([^>%]+)%>\s*(.+)", line)
if m:
try:
# Try normally
try:
js = json.loads(m.group(2))
# In case \x[..] has been used, try again!
except json.JSONDecodeError:
js = json.loads(re.sub(r"\\x..", "?", m.group(2)))
js["filepath"] = path
js["timestamp"] = time.time()
js["logtype"] = m.group(1)
self.logs.append(js["logtype"], js)
except json.JSONDecodeError:
pass
else:
for r in logtypes.regexes:
match = logtypes.regexes[r].match(line)
if match:
js = logtypes.tuples[r](filepath=path, logtype=r, timestamp=time.time(), **match.groupdict())
self.logs.append(js.logtype, js._asdict())
break