50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
"""
|
|
日志工具
|
|
"""
|
|
import sys
|
|
from pathlib import Path
|
|
from loguru import logger
|
|
|
|
from app.config import settings
|
|
|
|
|
|
def setup_logger():
|
|
"""配置日志格式和输出"""
|
|
|
|
# 移除默认 handler
|
|
logger.remove()
|
|
|
|
# 控制台输出
|
|
logger.add(
|
|
sys.stderr,
|
|
level=settings.LOG_LEVEL,
|
|
format=(
|
|
"<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | "
|
|
"<level>{level: <8}</level> | "
|
|
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
|
|
"<level>{message}</level>"
|
|
),
|
|
colorize=True,
|
|
)
|
|
|
|
# 文件输出(可选)
|
|
if settings.LOG_TO_FILE:
|
|
log_file = Path(settings.LOG_FILE)
|
|
log_file.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
logger.add(
|
|
str(log_file),
|
|
level="DEBUG",
|
|
format=(
|
|
"{time:YYYY-MM-DD HH:mm:ss.SSS} | "
|
|
"{level: <8} | "
|
|
"{name}:{function}:{line} | "
|
|
"{message}"
|
|
),
|
|
rotation="50 MB",
|
|
retention="7 days",
|
|
encoding="utf-8",
|
|
)
|
|
|
|
logger.info("日志系统初始化完成")
|