Better log.warning messages
- Corrent source for Python 3.8+ - Support for C style formatted strings
This commit is contained in:
parent
ed7eae0338
commit
93863788e7
18
kibot/log.py
18
kibot/log.py
|
|
@ -11,6 +11,7 @@ Handles logging initialization and formating.
|
||||||
"""
|
"""
|
||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
|
from io import StringIO
|
||||||
|
|
||||||
# Default domain, base name for the tool
|
# Default domain, base name for the tool
|
||||||
domain = 'kilog'
|
domain = 'kilog'
|
||||||
|
|
@ -36,12 +37,21 @@ class MyLogger(logging.Logger):
|
||||||
|
|
||||||
def warning(self, msg, *args, **kwargs):
|
def warning(self, msg, *args, **kwargs):
|
||||||
MyLogger.warn_tcnt += 1
|
MyLogger.warn_tcnt += 1
|
||||||
if msg in MyLogger.warn_hash:
|
if isinstance(msg, str):
|
||||||
MyLogger.warn_hash[msg] += 1
|
buf = StringIO()
|
||||||
|
buf.write(msg % args)
|
||||||
|
buf = buf.getvalue()
|
||||||
|
else:
|
||||||
|
buf = str(msg)
|
||||||
|
if buf in MyLogger.warn_hash:
|
||||||
|
MyLogger.warn_hash[buf] += 1
|
||||||
return
|
return
|
||||||
MyLogger.warn_cnt += 1
|
MyLogger.warn_cnt += 1
|
||||||
MyLogger.warn_hash[msg] = 1
|
MyLogger.warn_hash[buf] = 1
|
||||||
super().warning(msg, *args, **kwargs)
|
if sys.version_info.major > 3 or (sys.version_info.major == 3 and sys.version_info.minor >= 8):
|
||||||
|
super().warning(buf, stacklevel=2, **kwargs)
|
||||||
|
else:
|
||||||
|
super().warning(buf, **kwargs)
|
||||||
|
|
||||||
def log_totals(self):
|
def log_totals(self):
|
||||||
if MyLogger.warn_cnt:
|
if MyLogger.warn_cnt:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue