""" 调试日志工具 将调试信息写入 JSONL 文件 日志文件存放在 /tmp 目录,容器重启时自动清理 """ import json import traceback from datetime import datetime # 日志文件存放在 /tmp 目录,容器重启时自动清理 LOG_FILE = "/tmp/debug.log.jsonl" ERROR_LOG_FILE = "/tmp/error.log.jsonl" def log_debug(event_name: str, data: dict = None): """ 记录调试日志到 JSONL 文件 Args: event_name: 事件名称 data: 事件数据 """ entry = { "timestamp": datetime.now().isoformat(), "event": event_name, "data": data or {} } try: with open(LOG_FILE, "a") as f: f.write(json.dumps(entry) + "\n") except Exception as e: print(f"[debug_logger] Failed to write log: {e}") def log_error(event_name: str, error: Exception = None, data: dict = None): """ 记录错误日志到 JSONL 文件 Args: event_name: 事件名称 error: 异常对象 data: 额外数据 """ entry = { "timestamp": datetime.now().isoformat(), "event": event_name, "error_type": type(error).__name__ if error else None, "error_message": str(error) if error else None, "traceback": traceback.format_exc() if error else None, "data": data or {} } try: with open(ERROR_LOG_FILE, "a") as f: f.write(json.dumps(entry) + "\n") print(f"[log_error] {event_name}: {error}") except Exception as e: print(f"[debug_logger] Failed to write error log: {e}")