From abd2f3c35d3b5062b4ea7bbbcee0de17edc3f465 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Mon, 25 Aug 2025 02:14:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(log):=20=E4=BC=98=E5=8C=96=E5=94=A4?= =?UTF-8?q?=E9=86=92=E5=92=8C=E4=BC=91=E7=9C=A0=E6=97=A5=E5=BF=97=E7=9A=84?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E9=A2=91=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对唤醒度和休眠检查的日志记录进行节流,以减少在消息密集时产生的日志数量。 - 在 `WakeUpManager` 中,唤醒度变化的日志现在每30秒最多输出一次 INFO 级别的日志,其余时间的日志降为 DEBUG 级别。 - 在 `ScheduleManager` 中,休眠期间被唤醒的日志也增加了类似的节流逻辑,以避免日志刷屏。 --- src/chat/chat_loop/wakeup_manager.py | 9 ++++++++- src/manager/schedule_manager.py | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/chat/chat_loop/wakeup_manager.py b/src/chat/chat_loop/wakeup_manager.py index fa755e882..46af60249 100644 --- a/src/chat/chat_loop/wakeup_manager.py +++ b/src/chat/chat_loop/wakeup_manager.py @@ -26,6 +26,8 @@ class WakeUpManager: self.angry_start_time = 0.0 # 愤怒状态开始时间 self.last_decay_time = time.time() # 上次衰减时间 self._decay_task: Optional[asyncio.Task] = None + self.last_log_time = 0 + self.log_interval = 30 # 从配置文件获取参数 wakeup_config = global_config.wakeup_system @@ -123,7 +125,12 @@ class WakeUpManager: # 群聊未被艾特,不增加唤醒度 return False - logger.info(f"{self.context.log_prefix} 唤醒度变化: {old_value:.1f} -> {self.wakeup_value:.1f} (阈值: {self.wakeup_threshold})") + current_time = time.time() + if current_time - self.last_log_time > self.log_interval: + logger.info(f"{self.context.log_prefix} 唤醒度变化: {old_value:.1f} -> {self.wakeup_value:.1f} (阈值: {self.wakeup_threshold})") + self.last_log_time = current_time + else: + logger.debug(f"{self.context.log_prefix} 唤醒度变化: {old_value:.1f} -> {self.wakeup_value:.1f} (阈值: {self.wakeup_threshold})") # 检查是否达到唤醒阈值 if self.wakeup_value >= self.wakeup_threshold: diff --git a/src/manager/schedule_manager.py b/src/manager/schedule_manager.py index 27d0d0e04..4a708aeab 100644 --- a/src/manager/schedule_manager.py +++ b/src/manager/schedule_manager.py @@ -418,7 +418,12 @@ class ScheduleManager: if is_in_time_range: # 检查是否被唤醒 if wakeup_manager and wakeup_manager.is_in_angry_state(): - logger.info(f"在休眠活动 '{activity}' 期间,但已被唤醒。") + current_timestamp = datetime.now().timestamp() + if current_timestamp - self.last_sleep_log_time > self.sleep_log_interval: + logger.info(f"在休眠活动 '{activity}' 期间,但已被唤醒。") + self.last_sleep_log_time = current_timestamp + else: + logger.debug(f"在休眠活动 '{activity}' 期间,但已被唤醒。") return False current_timestamp = datetime.now().timestamp()