From b1818a03db6dcc14154a162f7b2725ffe4464b1c Mon Sep 17 00:00:00 2001 From: felinae98 <731499577@qq.com> Date: Tue, 4 Jan 2022 19:32:36 +0800 Subject: [PATCH] filter useless log of apscheduler --- src/plugins/nonebot_bison/scheduler.py | 17 +++++++++-------- src/plugins/nonebot_bison/utils.py | 4 ++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/plugins/nonebot_bison/scheduler.py b/src/plugins/nonebot_bison/scheduler.py index 0ae44cc..949504c 100644 --- a/src/plugins/nonebot_bison/scheduler.py +++ b/src/plugins/nonebot_bison/scheduler.py @@ -1,3 +1,4 @@ +import asyncio import logging from apscheduler.schedulers.asyncio import AsyncIOScheduler @@ -53,17 +54,17 @@ for platform_name, platform in platform_manager.items(): fetch_and_send, platform.schedule_type, **platform.schedule_kw, args=(platform_name,)) +class CustomLogHandler(LoguruHandler): + + def filter(self, record: logging.LogRecord): + return record.msg != ('Execution of job "%s" ' + 'skipped: maximum number of running instances reached (%d)') + + if plugin_config.bison_use_queue: scheduler.add_job(do_send_msgs, 'interval', seconds=0.3, coalesce=True) - class SchedulerLogFilter(logging.Filter): - - def filter(self, record: logging.LogRecord) -> bool: - logger.debug("logRecord", record, record.getMessage()) - return not (record.name == "apscheduler" and 'skipped: maximum number of running instances reached' in record.getMessage()) - aps_logger = logging.getLogger("apscheduler") aps_logger.setLevel(30) - aps_logger.addFilter(SchedulerLogFilter()) aps_logger.handlers.clear() - aps_logger.addHandler(LoguruHandler()) + aps_logger.addHandler(CustomLogHandler()) diff --git a/src/plugins/nonebot_bison/utils.py b/src/plugins/nonebot_bison/utils.py index 3a0314a..855d9ff 100644 --- a/src/plugins/nonebot_bison/utils.py +++ b/src/plugins/nonebot_bison/utils.py @@ -174,4 +174,8 @@ if plugin_config.bison_filter_log: diagnose=False, filter=default_filter, format=default_format) + config = nonebot.get_driver().config logger.success("Muted info & success from nonebot") + default_filter.level = ( + "DEBUG" if config.debug else + "INFO") if config.log_level is None else config.log_level