import os
from datetime import datetime
import pytz
from loguru import logger as loguru_logger
DATETIME = datetime.now(pytz.timezone('Asia/Shanghai')).strftime('%Y-%m-%d-%H%M%S')
# DATETIME = "debug" # 为了方便,调试的时候输出到 debug.log 文件
LOG_FILE = f'tmp/logs/project-{DATETIME}.log'
def setup_logger(name, level="DEBUG", console=True):
"""使用 loguru 设置日志记录器"""
os.makedirs("tmp/logs", exist_ok=True)
# 移除默认的 handler
loguru_logger.remove()
# 添加文件日志(无颜色)
loguru_logger.add(
LOG_FILE,
level=level,
format="{time:YYYY-MM-DD HH:mm:ss} - {level} - {name} - {message}",
encoding="utf-8",
rotation="10 MB", # 文件大小达到 10MB 时轮转
retention="30 days", # 保留30天的日志
compression="zip" # 压缩旧日志文件
)
# 添加控制台日志(有颜色)
if console:
loguru_logger.add(
lambda msg: print(msg, end=""),
level=level,
format="{time:YYYY-MM-DD HH:mm:ss} - {level} - {name} - {message}",
colorize=True
)
return loguru_logger
# 设置根日志记录器
logger = setup_logger('Yuxi')
__all__ = ['logger']
# If you want to disable logging from external libraries
# logging.getLogger('some_external_library').setLevel(logging.CRITICAL)