summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2019-02-07 02:31:15 +0100
committerEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2019-02-07 02:31:15 +0100
commite5e0533b6e355482f68592de1bff7e4af8f482ca (patch)
treec2f5061988fd6ec326184374ebc6652a4218825a
parent42b87268b39557aa4cd0bac11f7d2bc760dbd38f (diff)
downloadpoezio-e5e0533b6e355482f68592de1bff7e4af8f482ca.tar.gz
poezio-e5e0533b6e355482f68592de1bff7e4af8f482ca.tar.bz2
poezio-e5e0533b6e355482f68592de1bff7e4af8f482ca.tar.xz
poezio-e5e0533b6e355482f68592de1bff7e4af8f482ca.zip
logger: Log the JID during a parsing error.
-rw-r--r--poezio/logger.py10
-rw-r--r--test/test_logger.py8
2 files changed, 9 insertions, 9 deletions
diff --git a/poezio/logger.py b/poezio/logger.py
index c8ec66d9..d43cc759 100644
--- a/poezio/logger.py
+++ b/poezio/logger.py
@@ -56,14 +56,14 @@ class LogMessage(LogItem):
self.nick = nick
-def parse_log_line(msg: str) -> Optional[LogItem]:
+def parse_log_line(msg: str, jid: str) -> Optional[LogItem]:
match = re.match(MESSAGE_LOG_RE, msg)
if match:
return LogMessage(*match.groups())
match = re.match(INFO_LOG_RE, msg)
if match:
return LogInfo(*match.groups())
- log.debug('Error while parsing "%s"', msg)
+ log.debug('Error while parsing %s’s logs: “%s”', jid, msg)
return None
@@ -176,7 +176,7 @@ class Logger:
filename,
exc_info=True)
return None
- return parse_log_lines(lines)
+ return parse_log_lines(lines, jid)
def log_message(self,
jid: str,
@@ -306,7 +306,7 @@ def _get_lines_from_fd(fd: IO[Any], nb: int = 10) -> List[str]:
return lines
-def parse_log_lines(lines: List[str]) -> List[Dict[str, Any]]:
+def parse_log_lines(lines: List[str], jid: str) -> List[Dict[str, Any]]:
"""
Parse raw log lines into poezio log objects
"""
@@ -320,7 +320,7 @@ def parse_log_lines(lines: List[str]) -> List[Dict[str, Any]]:
idx += 1
log.debug('fail?')
continue
- log_item = parse_log_line(lines[idx])
+ log_item = parse_log_line(lines[idx], jid)
idx += 1
if not isinstance(log_item, LogItem):
log.debug('wrong log format? %s', log_item)
diff --git a/test/test_logger.py b/test/test_logger.py
index f1851d60..09ba720e 100644
--- a/test/test_logger.py
+++ b/test/test_logger.py
@@ -7,13 +7,13 @@ from poezio.common import get_utc_time, get_local_time
def test_parse_message():
line = 'MR 20170909T09:09:09Z 000 <nick>  body'
- assert vars(parse_log_line(line)) == vars(LogMessage('2017', '09', '09', '09', '09', '09', '0', 'nick', 'body'))
+ assert vars(parse_log_line(line, 'user@domain')) == vars(LogMessage('2017', '09', '09', '09', '09', '09', '0', 'nick', 'body'))
line = '<>'
- assert parse_log_line(line) is None
+ assert parse_log_line(line, 'user@domain') is None
line = 'MR 20170908T07:05:04Z 003 <nick>  '
- assert vars(parse_log_line(line)) == vars(LogMessage('2017', '09', '08', '07', '05', '04', '003', 'nick', ''))
+ assert vars(parse_log_line(line, 'user@domain')) == vars(LogMessage('2017', '09', '08', '07', '05', '04', '003', 'nick', ''))
def test_log_and_parse_messages():
@@ -27,7 +27,7 @@ def test_log_and_parse_messages():
msg2_utc = get_utc_time(msg2['date'])
assert built_msg2 == 'MR %s 001 <toto>  coucou\n coucou\n' % (msg2_utc.strftime('%Y%m%dT%H:%M:%SZ'))
- assert parse_log_lines((built_msg1 + built_msg2).split('\n')) == [
+ assert parse_log_lines((built_msg1 + built_msg2).split('\n'), 'user@domain') == [
{'time': msg1['date'], 'history': True, 'txt': '\x195,-1}coucou', 'nickname': 'toto'},
{'time': msg2['date'], 'history': True, 'txt': '\x195,-1}coucou\ncoucou', 'nickname': 'toto'},
]