Files
ToDoList/api/app/utils/logger.py
祀梦 2979197b1c release: Elysia ToDo v1.0.0
鍏ㄦ爤涓汉淇℃伅绠$悊搴旂敤锛岄泦鎴愬緟鍔炰换鍔°€佷範鎯墦鍗°€佺邯蹇垫棩鎻愰啋銆佽祫浜ф€昏鍔熻兘銆

Made-with: Cursor
2026-03-14 22:21:26 +08:00

49 lines
1.2 KiB
Python

import logging
import os
from datetime import datetime
from logging.handlers import TimedRotatingFileHandler
from app.config import LOG_LEVEL, LOG_DIR
# 确保日志目录存在
os.makedirs(LOG_DIR, exist_ok=True)
def setup_logger(name: str) -> logging.Logger:
"""设置日志记录器"""
logger = logging.getLogger(name)
logger.setLevel(getattr(logging, LOG_LEVEL))
# 避免重复添加处理器
if logger.handlers:
return logger
# 日志格式
formatter = logging.Formatter(
"[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
# 控制台处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# 文件处理器(按日期分割)
log_file = os.path.join(LOG_DIR, "app.log")
file_handler = TimedRotatingFileHandler(
log_file,
when="midnight",
interval=1,
backupCount=30,
encoding="utf-8"
)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
# 创建日志记录器
logger = setup_logger("app")