51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
import logging
|
||
import os
|
||
from logging.handlers import RotatingFileHandler
|
||
|
||
def setup_logging():
|
||
# 创建logs目录(如果不存在)
|
||
log_dir = 'logs'
|
||
if not os.path.exists(log_dir):
|
||
os.makedirs(log_dir)
|
||
|
||
# 配置根日志记录器
|
||
root_logger = logging.getLogger()
|
||
|
||
# 如果已经有handlers,先移除它们以防重复
|
||
if root_logger.handlers:
|
||
for handler in root_logger.handlers[:]:
|
||
root_logger.removeHandler(handler)
|
||
|
||
root_logger.setLevel(logging.INFO)
|
||
|
||
# 创建格式化器
|
||
formatter = logging.Formatter(
|
||
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||
)
|
||
|
||
# 创建文件处理器
|
||
file_handler = RotatingFileHandler(
|
||
os.path.join(log_dir, 'app.log'),
|
||
maxBytes=10*1024*1024, # 10MB
|
||
backupCount=5
|
||
)
|
||
file_handler.setLevel(logging.INFO)
|
||
file_handler.setFormatter(formatter)
|
||
|
||
# 创建控制台处理器
|
||
console_handler = logging.StreamHandler()
|
||
console_handler.setLevel(logging.INFO)
|
||
console_handler.setFormatter(formatter)
|
||
|
||
# 添加处理器到根日志记录器
|
||
root_logger.addHandler(file_handler)
|
||
root_logger.addHandler(console_handler)
|
||
|
||
# 设置propagate=False以防止日志消息向上传播
|
||
for logger_name in logging.root.manager.loggerDict:
|
||
logger = logging.getLogger(logger_name)
|
||
logger.propagate = False
|
||
|
||
return root_logger
|
||
|
||
logger = setup_logging() |