37 lines
660 B
Python
37 lines
660 B
Python
"""
|
|
日志模块 - 基于 loguru
|
|
"""
|
|
import sys
|
|
from pathlib import Path
|
|
from loguru import logger
|
|
|
|
from src.core.config import get_config
|
|
|
|
|
|
def setup_logger():
|
|
cfg = get_config().logging
|
|
|
|
logger.remove()
|
|
|
|
logger.add(
|
|
sys.stderr,
|
|
level=cfg.level,
|
|
format=cfg.format,
|
|
colorize=True,
|
|
)
|
|
|
|
log_path = Path(cfg.file)
|
|
log_path.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
logger.add(
|
|
str(log_path),
|
|
level=cfg.level,
|
|
format=cfg.format,
|
|
rotation=f"{cfg.max_size_mb} MB",
|
|
retention=cfg.backup_count,
|
|
encoding="utf-8",
|
|
enqueue=True,
|
|
)
|
|
|
|
return logger
|