You've already forked FrameTour-RenderWorker
feat(logger): 重构日志系统配置
- 添加RotatingFileHandler支持日志轮转 - 配置多个日志处理器分别输出到控制台、全部日志文件和错误日志文件 - 设置不同日志级别的输出过滤 - 确保日志文件目录存在并正确初始化日志系统 - 移除原有的基础日志配置方式
This commit is contained in:
56
index.py
56
index.py
@@ -25,6 +25,8 @@ import sys
|
||||
import time
|
||||
import signal
|
||||
import logging
|
||||
import os
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
from dotenv import load_dotenv
|
||||
|
||||
@@ -34,11 +36,55 @@ from services.task_executor import TaskExecutor
|
||||
from constant import SOFTWARE_VERSION
|
||||
|
||||
# 日志配置
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s',
|
||||
datefmt='%Y-%m-%d %H:%M:%S'
|
||||
)
|
||||
def setup_logging():
|
||||
"""配置日志系统,输出到控制台和文件"""
|
||||
# 日志格式
|
||||
log_format = '[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s'
|
||||
date_format = '%Y-%m-%d %H:%M:%S'
|
||||
formatter = logging.Formatter(log_format, date_format)
|
||||
|
||||
# 获取根logger
|
||||
root_logger = logging.getLogger()
|
||||
root_logger.setLevel(logging.INFO)
|
||||
|
||||
# 清除已有的handlers(避免重复)
|
||||
root_logger.handlers.clear()
|
||||
|
||||
# 1. 控制台handler(只输出WARNING及以上级别)
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setLevel(logging.WARNING)
|
||||
console_handler.setFormatter(formatter)
|
||||
root_logger.addHandler(console_handler)
|
||||
|
||||
# 确保日志文件所在目录存在
|
||||
log_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
# 2. 所有日志文件handler(all_log.log)
|
||||
all_log_path = os.path.join(log_dir, 'all_log.log')
|
||||
all_log_handler = RotatingFileHandler(
|
||||
all_log_path,
|
||||
maxBytes=10*1024*1024, # 10MB
|
||||
backupCount=5,
|
||||
encoding='utf-8'
|
||||
)
|
||||
all_log_handler.setLevel(logging.DEBUG) # 记录所有级别
|
||||
all_log_handler.setFormatter(formatter)
|
||||
root_logger.addHandler(all_log_handler)
|
||||
|
||||
# 3. 错误日志文件handler(error.log)
|
||||
error_log_path = os.path.join(log_dir, 'error.log')
|
||||
error_log_handler = RotatingFileHandler(
|
||||
error_log_path,
|
||||
maxBytes=10*1024*1024, # 10MB
|
||||
backupCount=5,
|
||||
encoding='utf-8'
|
||||
)
|
||||
error_log_handler.setLevel(logging.ERROR) # 只记录ERROR及以上
|
||||
error_log_handler.setFormatter(formatter)
|
||||
root_logger.addHandler(error_log_handler)
|
||||
|
||||
# 初始化日志系统
|
||||
setup_logging()
|
||||
logger = logging.getLogger('worker')
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user