# logger_config.py
from loguru import logger
import sys
import os
# 移除默认配置(可选)
logger.remove()
# 配置控制台输出
logger.add(
sys.stdout,
colorize=True,
format="{time:YYYY-MM-DD HH:mm:ss.SSS} | {level: <8} | {name}:{function}:{line} - {message}",
level="DEBUG"
)
# 配置文件输出(带轮换)
log_path = os.path.join(os.getcwd(), "logs", "app_{time}.log")
logger.add(
log_path,
rotation="100 MB", # 按大小轮换
retention="30 days", # 保留30天
compression="zip", # 压缩旧日志
enqueue=True, # 线程安全
backtrace=True, # 记录异常堆栈
diagnose=True, # 显示变量值(生产环境建议关闭)
level="INFO",
format="{time:YYYY-MM-DD HH:mm:ss.SSS} | {level: <8} | {name}:{function}:{line} - {message}"
)
# 可选:添加错误日志单独文件
logger.add(
os.path.join(os.getcwd(), "logs", "error.log"),
rotation="00:00", # 每天轮换
retention="90 days",
level="ERROR",
format="{time:YYYY-MM-DD HH:mm:ss.SSS} | {level: <8} | {name}:{function}:{line} - {message}"
)