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

# 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)