feat(log): 优化唤醒和休眠日志的输出频率

对唤醒度和休眠检查的日志记录进行节流,以减少在消息密集时产生的日志数量。

- 在 `WakeUpManager` 中,唤醒度变化的日志现在每30秒最多输出一次 INFO 级别的日志,其余时间的日志降为 DEBUG 级别。
- 在 `ScheduleManager` 中,休眠期间被唤醒的日志也增加了类似的节流逻辑,以避免日志刷屏。
This commit is contained in:
tt-P607
2025-08-25 02:14:34 +08:00
committed by Windpicker-owo
parent 6434708f23
commit abd2f3c35d
2 changed files with 14 additions and 2 deletions

View File

@@ -26,6 +26,8 @@ class WakeUpManager:
self.angry_start_time = 0.0 # 愤怒状态开始时间 self.angry_start_time = 0.0 # 愤怒状态开始时间
self.last_decay_time = time.time() # 上次衰减时间 self.last_decay_time = time.time() # 上次衰减时间
self._decay_task: Optional[asyncio.Task] = None self._decay_task: Optional[asyncio.Task] = None
self.last_log_time = 0
self.log_interval = 30
# 从配置文件获取参数 # 从配置文件获取参数
wakeup_config = global_config.wakeup_system wakeup_config = global_config.wakeup_system
@@ -123,7 +125,12 @@ class WakeUpManager:
# 群聊未被艾特,不增加唤醒度 # 群聊未被艾特,不增加唤醒度
return False 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: if self.wakeup_value >= self.wakeup_threshold:

View File

@@ -418,7 +418,12 @@ class ScheduleManager:
if is_in_time_range: if is_in_time_range:
# 检查是否被唤醒 # 检查是否被唤醒
if wakeup_manager and wakeup_manager.is_in_angry_state(): 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 return False
current_timestamp = datetime.now().timestamp() current_timestamp = datetime.now().timestamp()