优化日志

This commit is contained in:
Windpicker-owo
2025-11-26 21:16:16 +08:00
parent e0157256b1
commit 0908fb50a0
100 changed files with 493 additions and 574 deletions

View File

@@ -67,7 +67,7 @@ async def get_replyer(
request_type=request_type,
)
except Exception as e:
logger.error(f"[GeneratorAPI] 获取回复器时发生意外错误: {e}", exc_info=True)
logger.error(f"[GeneratorAPI] 获取回复器时发生意外错误: {e}")
traceback.print_exc()
return None

View File

@@ -63,7 +63,6 @@ class PermissionAPI:
def set_permission_manager(self, manager: IPermissionManager):
self._permission_manager = manager
logger.info("权限管理器已设置")
def _ensure_manager(self):
if self._permission_manager is None:

View File

@@ -310,6 +310,15 @@ async def _send_to_target(
timestamp=current_time,
)
# Use readable display text so binary/base64 payloads are not stored directly
display_message_for_db = display_message or ""
if not display_message_for_db:
if message_type in {"emoji", "image", "voice", "video", "file"}:
# Leave empty to keep processed_plain_text (e.g., generated descriptions) instead of raw payloads
display_message_for_db = ""
elif isinstance(content, str):
display_message_for_db = content
sent_msg = await heart_fc_sender.send_message(
envelope,
chat_stream=target_stream,
@@ -317,7 +326,7 @@ async def _send_to_target(
storage_message=storage_message,
show_log=show_log,
thinking_start_time=current_time,
display_message=display_message or (content if isinstance(content, str) else ""),
display_message=display_message_for_db,
)
if sent_msg:

View File

@@ -92,7 +92,7 @@ class PluginStorage:
os.makedirs(directory)
logger.info(f"目录 '{directory}' 创建成功。")
except Exception as e:
logger.error(f"创建存储目录时发生错误: {e}", exc_info=True)
logger.error(f"创建存储目录时发生错误: {e}")
raise
def _load_data(self) -> None:
@@ -130,7 +130,7 @@ class PluginStorage:
self._dirty = False # 保存后重置标志
logger.debug(f"插件 '{self.name}' 的数据已成功保存到磁盘。")
except Exception as e:
logger.error(f"'{self.file_path}' 保存数据时发生错误: {e}", exc_info=True)
logger.error(f"'{self.file_path}' 保存数据时发生错误: {e}")
raise
def get(self, key: str, default: Any | None = None) -> Any:
@@ -203,5 +203,5 @@ def get_local_storage(name: str) -> "PluginStorage":
storage_instance = PluginStorageManager.get_storage(name)
return storage_instance
except Exception as e:
logger.critical(f"为插件 '{name}' 提供本地存储实例时发生严重错误: {e}", exc_info=True)
logger.critical(f"为插件 '{name}' 提供本地存储实例时发生严重错误: {e}")
raise

View File

@@ -365,7 +365,6 @@ class UnifiedScheduler:
logger.warning("调度器已在运行中")
return
logger.info("正在启动统一调度器...")
self._running = True
self._stopping = False
self._start_time = datetime.now()
@@ -384,14 +383,14 @@ class UnifiedScheduler:
except ImportError:
logger.warning("无法导入 event_manager事件触发功能将不可用")
logger.info("统一调度器已启动")
logger.debug("统一调度器已启动")
async def stop(self) -> None:
"""停止调度器(优雅关闭)"""
if not self._running:
return
logger.info("正在停止统一调度器...")
logger.debug("正在停止统一调度器...")
self._stopping = True
self._running = False
@@ -486,7 +485,7 @@ class UnifiedScheduler:
logger.debug("调度器主循环被取消")
break
except Exception as e:
logger.error(f"调度器主循环发生错误: {e}", exc_info=True)
logger.error(f"调度器主循环发生错误: {e}")
async def _deadlock_check_loop(self) -> None:
"""死锁检测循环"""
@@ -504,7 +503,7 @@ class UnifiedScheduler:
logger.debug("死锁检测循环被取消")
break
except Exception as e:
logger.error(f"死锁检测循环发生错误: {e}", exc_info=True)
logger.error(f"死锁检测循环发生错误: {e}")
# 继续运行,不因单次错误停止
async def _cleanup_loop(self) -> None:
@@ -522,7 +521,7 @@ class UnifiedScheduler:
logger.debug("清理循环被取消")
break
except Exception as e:
logger.error(f"清理循环发生错误: {e}", exc_info=True)
logger.error(f"清理循环发生错误: {e}")
# ==================== 任务触发逻辑 ====================
@@ -541,7 +540,7 @@ class UnifiedScheduler:
if should_trigger:
tasks_to_trigger.append(task)
except Exception as e:
logger.error(f"检查任务 {task.task_name} 触发条件时出错: {e}", exc_info=True)
logger.error(f"检查任务 {task.task_name} 触发条件时出错: {e}")
# 第二阶段:并发触发所有任务
if tasks_to_trigger:
@@ -604,7 +603,7 @@ class UnifiedScheduler:
result = condition_func()
return bool(result)
except Exception as e:
logger.error(f"执行任务 {task.task_name} 的自定义条件函数时出错: {e}", exc_info=True)
logger.error(f"执行任务 {task.task_name} 的自定义条件函数时出错: {e}")
return False
async def _trigger_tasks_concurrently(self, tasks: list[ScheduleTask]) -> None:
@@ -659,7 +658,7 @@ class UnifiedScheduler:
except Exception as e:
# 任务执行失败
logger.error(f"任务 {task.task_name} 执行失败: {e}", exc_info=True)
logger.error(f"任务 {task.task_name} 执行失败: {e}")
task.finish_execution(success=False, error=e)
self._total_failures += 1
@@ -695,7 +694,7 @@ class UnifiedScheduler:
)
return result
except Exception as e:
logger.error(f"执行任务 {task.task_name} 的回调函数时出错: {e}", exc_info=True)
logger.error(f"执行任务 {task.task_name} 的回调函数时出错: {e}")
raise
def _acquire_semaphore(self):
@@ -803,7 +802,7 @@ class UnifiedScheduler:
raise
except Exception as e:
logger.error(f"事件任务 {task.task_name} 执行失败: {e}", exc_info=True)
logger.error(f"事件任务 {task.task_name} 执行失败: {e}")
task.finish_execution(success=False, error=e)
self._total_failures += 1
@@ -823,7 +822,7 @@ class UnifiedScheduler:
except RecursionError:
logger.error("死锁检测发生递归错误,跳过本轮检测")
except Exception as e:
logger.error(f"死锁检测处理失败: {e}", exc_info=True)
logger.error(f"死锁检测处理失败: {e}")
async def _check_and_handle_deadlocks(self) -> None:
"""检查并处理死锁任务"""
@@ -847,7 +846,7 @@ class UnifiedScheduler:
try:
await self._cancel_task(task, reason="deadlock detected")
except Exception as e:
logger.error(f"取消任务 {task_name} 时出错: {e}", exc_info=True)
logger.error(f"取消任务 {task_name} 时出错: {e}")
# 强制清理
task._asyncio_task = None
task.status = TaskStatus.CANCELLED
@@ -884,7 +883,7 @@ class UnifiedScheduler:
break
except Exception as e:
logger.error(f"取消任务 {task.task_name} 时发生异常: {e}", exc_info=True)
logger.error(f"取消任务 {task.task_name} 时发生异常: {e}")
return False
# 第三阶段:强制清理
@@ -1095,7 +1094,7 @@ class UnifiedScheduler:
await exec_task
return task.status == TaskStatus.COMPLETED
except Exception as e:
logger.error(f"强制触发任务 {task.task_name} 失败: {e}", exc_info=True)
logger.error(f"强制触发任务 {task.task_name} 失败: {e}")
return False
async def pause_schedule(self, schedule_id: str) -> bool:
@@ -1293,19 +1292,13 @@ async def initialize_scheduler():
这个函数应该在 bot 启动时调用
"""
try:
logger.info("正在启动统一调度器...")
await unified_scheduler.start()
logger.info("统一调度器启动成功")
# 获取初始统计信息
stats = unified_scheduler.get_statistics()
logger.info(f"调度器状态: {stats}")
except Exception as e:
logger.error(f"启动统一调度器失败: {e}", exc_info=True)
logger.error(f"启动统一调度器失败: {e}")
raise
async def shutdown_scheduler():
"""关闭调度器
@@ -1329,4 +1322,4 @@ async def shutdown_scheduler():
logger.info("统一调度器已关闭")
except Exception as e:
logger.error(f"关闭统一调度器失败: {e}", exc_info=True)
logger.error(f"关闭统一调度器失败: {e}")