2024-07-14 16:52:30 +08:00
|
|
|
import os
|
2024-07-07 01:58:23 +08:00
|
|
|
from datetime import datetime
|
|
|
|
|
|
2025-05-20 20:49:50 +08:00
|
|
|
import pytz
|
2025-06-18 19:07:29 +08:00
|
|
|
|
2025-06-23 10:32:01 +08:00
|
|
|
from loguru import logger as loguru_logger
|
2024-07-07 01:58:23 +08:00
|
|
|
|
2025-06-28 20:19:26 +08:00
|
|
|
SAVE_DIR = os.getenv('SAVE_DIR', 'saves')
|
|
|
|
|
DATETIME = datetime.now(pytz.timezone('Asia/Shanghai')).strftime('%Y-%m-%d')
|
|
|
|
|
LOG_FILE = f'{SAVE_DIR}/logs/yuxi-{DATETIME}.log'
|
|
|
|
|
|
2025-06-18 19:07:29 +08:00
|
|
|
def setup_logger(name, level="DEBUG", console=True):
|
|
|
|
|
"""使用 loguru 设置日志记录器"""
|
2025-06-28 20:19:26 +08:00
|
|
|
os.makedirs(f"{SAVE_DIR}/logs", exist_ok=True) # 创建日志目录
|
2025-06-23 10:32:01 +08:00
|
|
|
|
2025-06-18 19:07:29 +08:00
|
|
|
# 移除默认的 handler
|
2025-06-23 10:32:01 +08:00
|
|
|
loguru_logger.remove()
|
|
|
|
|
|
2025-06-18 19:07:29 +08:00
|
|
|
# 添加文件日志(无颜色)
|
2025-06-23 10:32:01 +08:00
|
|
|
loguru_logger.add(
|
2025-06-18 19:07:29 +08:00
|
|
|
LOG_FILE,
|
|
|
|
|
level=level,
|
2025-08-31 10:27:58 +08:00
|
|
|
format="{time:YYYY-MM-DD HH:mm:ss} - {level} - {name}:{line} - {message}",
|
2025-06-18 19:07:29 +08:00
|
|
|
encoding="utf-8",
|
|
|
|
|
rotation="10 MB", # 文件大小达到 10MB 时轮转
|
|
|
|
|
retention="30 days", # 保留30天的日志
|
|
|
|
|
compression="zip" # 压缩旧日志文件
|
|
|
|
|
)
|
2025-06-23 10:32:01 +08:00
|
|
|
|
2025-06-18 19:07:29 +08:00
|
|
|
# 添加控制台日志(有颜色)
|
2024-07-07 01:58:23 +08:00
|
|
|
if console:
|
2025-06-23 10:32:01 +08:00
|
|
|
loguru_logger.add(
|
2025-06-18 19:07:29 +08:00
|
|
|
lambda msg: print(msg, end=""),
|
|
|
|
|
level=level,
|
2025-08-31 10:27:58 +08:00
|
|
|
format="<green>{time:MM-DD HH:mm:ss}</green> <level>{level}</level> <cyan>{name}:{line}</cyan>: <level>{message}</level>",
|
2025-06-18 19:07:29 +08:00
|
|
|
colorize=True
|
2025-05-20 20:49:50 +08:00
|
|
|
)
|
2025-06-23 10:32:01 +08:00
|
|
|
|
|
|
|
|
return loguru_logger
|
2024-07-07 01:58:23 +08:00
|
|
|
|
2024-08-25 20:29:24 +08:00
|
|
|
|
2025-06-18 19:07:29 +08:00
|
|
|
# 设置根日志记录器
|
2024-09-14 02:45:35 +08:00
|
|
|
logger = setup_logger('Yuxi')
|
2024-07-07 01:58:23 +08:00
|
|
|
|
2025-06-23 10:32:01 +08:00
|
|
|
__all__ = ['logger']
|
|
|
|
|
|
2024-07-07 01:58:23 +08:00
|
|
|
# If you want to disable logging from external libraries
|
|
|
|
|
# logging.getLogger('some_external_library').setLevel(logging.CRITICAL)
|