You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
48 lines
1.5 KiB
# coding=utf-8
|
|
import sys
|
|
|
|
from loguru import logger
|
|
import os
|
|
from datetime import datetime
|
|
|
|
import config
|
|
|
|
|
|
def create_logger(platform: str):
|
|
"""
|
|
初始化日志工具类
|
|
:param platform: 平台名称
|
|
:param name: 姓名
|
|
"""
|
|
# 确定日志目录,按月份保存
|
|
current_month = datetime.now().strftime("%Y-%m")
|
|
log_dir = os.path.join("logs", current_month)
|
|
os.makedirs(log_dir, exist_ok=True)
|
|
# 确定日志文件名称为当前日的部分
|
|
current_day = datetime.now().strftime("%d")
|
|
log_file = os.path.join(log_dir, f"{current_day}.log")
|
|
|
|
logger.remove()
|
|
# 文件处理器
|
|
logger.add(
|
|
log_file,
|
|
level=config.LOG_LEVEL,
|
|
rotation="1 day", # 每天轮换日志文件
|
|
retention="3 months", # 日志保留3个月
|
|
encoding="utf-8",
|
|
enqueue=True, # 异步写入
|
|
backtrace=True, # 显示回溯信息
|
|
diagnose=True, # 显示诊断信息
|
|
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level}</level> | "
|
|
"<cyan>{extra[platform]}</cyan> | <level>{message}</level>"
|
|
)
|
|
# 控制台处理器
|
|
logger.add(
|
|
sys.stderr,
|
|
level=config.LOG_LEVEL,
|
|
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level}</level> | "
|
|
"<cyan>{extra[platform]}</cyan> | <level>{message}</level>",
|
|
colorize=True
|
|
)
|
|
# 设置默认的上下文信息
|
|
return logger.bind(platform=platform)
|