完成所有类型注解的修复
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
import logging
|
||||
|
||||
# 使用基于时间戳的文件处理器,简单的轮转份数限制
|
||||
from pathlib import Path
|
||||
from typing import Callable, Optional
|
||||
|
||||
import logging
|
||||
import json
|
||||
import threading
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import structlog
|
||||
import toml
|
||||
|
||||
from pathlib import Path
|
||||
from typing import Callable, Optional
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
# 创建logs目录
|
||||
LOG_DIR = Path("logs")
|
||||
LOG_DIR.mkdir(exist_ok=True)
|
||||
@@ -160,7 +160,7 @@ def close_handlers():
|
||||
_console_handler = None
|
||||
|
||||
|
||||
def remove_duplicate_handlers():
|
||||
def remove_duplicate_handlers(): # sourcery skip: for-append-to-extend, list-comprehension
|
||||
"""移除重复的handler,特别是文件handler"""
|
||||
root_logger = logging.getLogger()
|
||||
|
||||
@@ -184,7 +184,7 @@ def remove_duplicate_handlers():
|
||||
|
||||
|
||||
# 读取日志配置
|
||||
def load_log_config():
|
||||
def load_log_config(): # sourcery skip: use-contextlib-suppress
|
||||
"""从配置文件加载日志设置"""
|
||||
config_path = Path("config/bot_config.toml")
|
||||
default_config = {
|
||||
@@ -365,7 +365,7 @@ MODULE_COLORS = {
|
||||
"component_registry": "\033[38;5;214m", # 橙黄色
|
||||
"stream_api": "\033[38;5;220m", # 黄色
|
||||
"config_api": "\033[38;5;226m", # 亮黄色
|
||||
"hearflow_api": "\033[38;5;154m", # 黄绿色
|
||||
"heartflow_api": "\033[38;5;154m", # 黄绿色
|
||||
"action_apis": "\033[38;5;118m", # 绿色
|
||||
"independent_apis": "\033[38;5;82m", # 绿色
|
||||
"llm_api": "\033[38;5;46m", # 亮绿色
|
||||
@@ -412,6 +412,7 @@ class ModuleColoredConsoleRenderer:
|
||||
"""自定义控制台渲染器,为不同模块提供不同颜色"""
|
||||
|
||||
def __init__(self, colors=True):
|
||||
# sourcery skip: merge-duplicate-blocks, remove-redundant-if
|
||||
self._colors = colors
|
||||
self._config = LOG_CONFIG
|
||||
|
||||
@@ -443,6 +444,7 @@ class ModuleColoredConsoleRenderer:
|
||||
self._enable_full_content_colors = False
|
||||
|
||||
def __call__(self, logger, method_name, event_dict):
|
||||
# sourcery skip: merge-duplicate-blocks
|
||||
"""渲染日志消息"""
|
||||
# 获取基本信息
|
||||
timestamp = event_dict.get("timestamp", "")
|
||||
@@ -662,7 +664,7 @@ def get_logger(name: Optional[str]) -> structlog.stdlib.BoundLogger:
|
||||
"""获取logger实例,支持按名称绑定"""
|
||||
if name is None:
|
||||
return raw_logger
|
||||
logger = binds.get(name)
|
||||
logger = binds.get(name) # type: ignore
|
||||
if logger is None:
|
||||
logger: structlog.stdlib.BoundLogger = structlog.get_logger(name).bind(logger_name=name)
|
||||
binds[name] = logger
|
||||
@@ -671,8 +673,8 @@ def get_logger(name: Optional[str]) -> structlog.stdlib.BoundLogger:
|
||||
|
||||
def configure_logging(
|
||||
level: str = "INFO",
|
||||
console_level: str = None,
|
||||
file_level: str = None,
|
||||
console_level: Optional[str] = None,
|
||||
file_level: Optional[str] = None,
|
||||
max_bytes: int = 5 * 1024 * 1024,
|
||||
backup_count: int = 30,
|
||||
log_dir: str = "logs",
|
||||
@@ -729,14 +731,11 @@ def reload_log_config():
|
||||
global LOG_CONFIG
|
||||
LOG_CONFIG = load_log_config()
|
||||
|
||||
# 重新设置handler的日志级别
|
||||
file_handler = get_file_handler()
|
||||
if file_handler:
|
||||
if file_handler := get_file_handler():
|
||||
file_level = LOG_CONFIG.get("file_log_level", LOG_CONFIG.get("log_level", "INFO"))
|
||||
file_handler.setLevel(getattr(logging, file_level.upper(), logging.INFO))
|
||||
|
||||
console_handler = get_console_handler()
|
||||
if console_handler:
|
||||
if console_handler := get_console_handler():
|
||||
console_level = LOG_CONFIG.get("console_log_level", LOG_CONFIG.get("log_level", "INFO"))
|
||||
console_handler.setLevel(getattr(logging, console_level.upper(), logging.INFO))
|
||||
|
||||
@@ -780,8 +779,7 @@ def set_console_log_level(level: str):
|
||||
global LOG_CONFIG
|
||||
LOG_CONFIG["console_log_level"] = level.upper()
|
||||
|
||||
console_handler = get_console_handler()
|
||||
if console_handler:
|
||||
if console_handler := get_console_handler():
|
||||
console_handler.setLevel(getattr(logging, level.upper(), logging.INFO))
|
||||
|
||||
# 重新设置root logger级别
|
||||
@@ -800,8 +798,7 @@ def set_file_log_level(level: str):
|
||||
global LOG_CONFIG
|
||||
LOG_CONFIG["file_log_level"] = level.upper()
|
||||
|
||||
file_handler = get_file_handler()
|
||||
if file_handler:
|
||||
if file_handler := get_file_handler():
|
||||
file_handler.setLevel(getattr(logging, level.upper(), logging.INFO))
|
||||
|
||||
# 重新设置root logger级别
|
||||
@@ -933,13 +930,12 @@ def format_json_for_logging(data, indent=2, ensure_ascii=False):
|
||||
Returns:
|
||||
str: 格式化后的JSON字符串
|
||||
"""
|
||||
if isinstance(data, str):
|
||||
# 如果是JSON字符串,先解析再格式化
|
||||
parsed_data = json.loads(data)
|
||||
return json.dumps(parsed_data, indent=indent, ensure_ascii=ensure_ascii)
|
||||
else:
|
||||
if not isinstance(data, str):
|
||||
# 如果是对象,直接格式化
|
||||
return json.dumps(data, indent=indent, ensure_ascii=ensure_ascii)
|
||||
# 如果是JSON字符串,先解析再格式化
|
||||
parsed_data = json.loads(data)
|
||||
return json.dumps(parsed_data, indent=indent, ensure_ascii=ensure_ascii)
|
||||
|
||||
|
||||
def cleanup_old_logs():
|
||||
|
||||
Reference in New Issue
Block a user