From b3fe43cb1800091b159f1ff61dae73f682151b4e Mon Sep 17 00:00:00 2001 From: Terry Geng Date: Fri, 24 Jul 2020 21:50:18 +0800 Subject: [PATCH] feat: Enhance debug log. --- mumbleBot.py | 3 +-- util.py | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/mumbleBot.py b/mumbleBot.py index 75e8420..fec4943 100644 --- a/mumbleBot.py +++ b/mumbleBot.py @@ -769,7 +769,6 @@ if __name__ == '__main__': # ====================== bot_logger = logging.getLogger("bot") - formatter = logging.Formatter('[%(asctime)s %(levelname)s %(threadName)s] %(message)s', "%b %d %H:%M:%S") bot_logger.setLevel(logging.INFO) if args.verbose: @@ -789,7 +788,7 @@ if __name__ == '__main__': else: handler = logging.StreamHandler() - handler.setFormatter(formatter) + util.set_logging_formatter(handler, bot_logger.level) bot_logger.addHandler(handler) logging.getLogger("root").addHandler(handler) var.bot_logger = bot_logger diff --git a/util.py b/util.py index 6589881..ab53c86 100644 --- a/util.py +++ b/util.py @@ -338,10 +338,11 @@ def youtube_search(query): try: results = None r = requests.get("https://www.youtube.com/results", params={'search_query': query}, timeout=5) - results = re.findall(r"(watch\?v=(?P[^\"\r\n]*)\".*?title=\"(?P[^\r\n\"]*)\".*?(?:user|channel)[^>]*" - r">(?P<uploader>[^<\"\n\r]*)<)|(\"videoId\":\"(?P<videoid2>[^\"]*)\").*?\"title\":{\"runs\":\[{" - r"\"text\":\"(?P<title2>[^\"]*)\".*?\"ownerText\":{\"runs\":\[{\"text\":\"(?P<uploader2>[^\"]*)" - r"\"", r.text) # (catch1, id1, title1, uploader1, catch2, id2, title2, uploader2,) + results = re.findall( + r"(watch\?v=(?P<videoid>[^\"\r\n]*)\".*?title=\"(?P<title>[^\r\n\"]*)\".*?(?:user|channel)[^>]*" + r">(?P<uploader>[^<\"\n\r]*)<)|(\"videoId\":\"(?P<videoid2>[^\"]*)\").*?\"title\":{\"runs\":\[{" + r"\"text\":\"(?P<title2>[^\"]*)\".*?\"ownerText\":{\"runs\":\[{\"text\":\"(?P<uploader2>[^\"]*)" + r"\"", r.text) # (catch1, id1, title1, uploader1, catch2, id2, title2, uploader2,) if len(results) > 0: finalResults = None @@ -426,6 +427,19 @@ def get_supported_language(): return lang_list +def set_logging_formatter(handler: logging.Handler, logging_level): + if logging_level == logging.DEBUG: + formatter = logging.Formatter( + "[%(asctime)s] > [%(threadName)s] > " + "[%(filename)s:%(lineno)d] %(message)s" + ) + else: + formatter = logging.Formatter( + '[%(asctime)s %(levelname)s] %(message)s', "%b %d %H:%M:%S") + + handler.setFormatter(formatter) + + class LoggerIOWrapper(io.TextIOWrapper): def __init__(self, logger: logging.Logger, logging_level, fallback_io_buffer): super().__init__(fallback_io_buffer, write_through=True)