From 24e10b3c3d86a48e7a46b1b82b38cf83c8fafa3c Mon Sep 17 00:00:00 2001 From: zhiyong Date: Wed, 14 May 2025 23:38:06 +0800 Subject: [PATCH] update logger config --- src/config.py | 2 +- src/logger_config.py | 38 +++++++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/config.py b/src/config.py index 5c070c0..f36d4fe 100644 --- a/src/config.py +++ b/src/config.py @@ -20,7 +20,7 @@ class Config: LOG_LEVEL = "INFO" LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' LOG_MAX_BYTES = 10 * 1024 * 1024 # 10MB - LOG_BACKUP_COUNT = 5 + LOG_BACKUP_COUNT = 10 # strategy data DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "data") diff --git a/src/logger_config.py b/src/logger_config.py index acebcad..ae77b71 100644 --- a/src/logger_config.py +++ b/src/logger_config.py @@ -16,7 +16,10 @@ def create_formatter(format_str=None): return logging.Formatter(format_str) # 创建服务器日志记录器 -def setup_server_logger(log_dir, max_bytes=10*1024*1024, backup_count=5, level=logging.INFO, log_format=None): +def setup_server_logger(log_dir=Config.LOG_DIR, max_bytes=getattr(Config, 'LOG_MAX_BYTES', 10*1024*1024), + backup_count=getattr(Config, 'LOG_BACKUP_COUNT', 5), + level=getattr(Config, 'LOG_LEVEL', logging.INFO), + log_format=None): """ 创建服务器日志记录器 @@ -56,12 +59,18 @@ def setup_server_logger(log_dir, max_bytes=10*1024*1024, backup_count=5, level=l return logger # 创建真实交易日志记录器 -def setup_real_trader_logger(log_dir, level=logging.INFO, log_format=None): +def setup_real_trader_logger(log_dir=Config.LOG_DIR, + max_bytes=getattr(Config, 'LOG_MAX_BYTES', 10*1024*1024), + backup_count=getattr(Config, 'LOG_BACKUP_COUNT', 5), + level=getattr(Config, 'LOG_LEVEL', logging.INFO), + log_format=None): """ 创建真实交易日志记录器 Args: log_dir: 日志目录 + max_bytes: 单个日志文件最大大小 + backup_count: 保留的备份文件数量 level: 日志级别 log_format: 日志格式 @@ -76,15 +85,12 @@ def setup_real_trader_logger(log_dir, level=logging.INFO, log_format=None): for handler in logger.handlers[:]: logger.removeHandler(handler) - # 创建每日滚动文件处理器 - file_handler = TimedRotatingFileHandler( + # 创建基于大小的滚动文件处理器,替换原有的基于时间的处理器 + file_handler = RotatingFileHandler( os.path.join(log_dir, 'real_trader.log'), - when="midnight", - interval=1, - backupCount=7, - encoding="utf-8" + maxBytes=max_bytes, + backupCount=backup_count ) - file_handler.suffix = "%Y-%m-%d" formatter = create_formatter(log_format or '%(asctime)s - %(levelname)s - %(message)s') file_handler.setFormatter(formatter) logger.addHandler(file_handler) @@ -97,7 +103,11 @@ def setup_real_trader_logger(log_dir, level=logging.INFO, log_format=None): return logger # 创建模拟交易日志记录器 -def setup_simulation_logger(log_dir, max_bytes=10*1024*1024, backup_count=5, level=logging.INFO, log_format=None): +def setup_simulation_logger(log_dir=Config.LOG_DIR, + max_bytes=getattr(Config, 'LOG_MAX_BYTES', 10*1024*1024), + backup_count=getattr(Config, 'LOG_BACKUP_COUNT', 5), + level=getattr(Config, 'LOG_LEVEL', logging.INFO), + log_format=None): """ 创建模拟交易日志记录器 @@ -147,7 +157,9 @@ def setup_strategy_logger(): return logging.getLogger('trade_server') # 根据配置创建合适的日志记录器 -def get_logger(module_name, log_dir=Config.LOG_DIR, level=Config.LOG_LEVEL if hasattr(Config, 'LOG_LEVEL') else logging.INFO): +def get_logger(module_name, + log_dir=Config.LOG_DIR, + level=getattr(Config, 'LOG_LEVEL', logging.INFO)): """ 获取适合模块的日志记录器 @@ -182,8 +194,8 @@ def get_logger(module_name, log_dir=Config.LOG_DIR, level=Config.LOG_LEVEL if ha # 添加文件处理器 file_handler = RotatingFileHandler( os.path.join(log_dir, f'{module_name}.log'), - maxBytes=10*1024*1024, - backupCount=5 + maxBytes=getattr(Config, 'LOG_MAX_BYTES', 10*1024*1024), + backupCount=getattr(Config, 'LOG_BACKUP_COUNT', 5) ) file_handler.setFormatter(create_formatter()) logger.addHandler(file_handler)