初始化
This commit is contained in:
62
backend/logger.py
Normal file
62
backend/logger.py
Normal file
@@ -0,0 +1,62 @@
|
||||
"""日志配置 — 按天拆分 + 当前日志"""
|
||||
import logging
|
||||
import os
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
from datetime import datetime
|
||||
|
||||
LOG_DIR = os.getenv("LOG_DIR", os.path.join(os.path.dirname(__file__), "logs"))
|
||||
|
||||
|
||||
def setup_logger(name="mokeetext"):
|
||||
"""配置日志:一天一个文件 + current.log 始终为当天日志"""
|
||||
os.makedirs(LOG_DIR, exist_ok=True)
|
||||
|
||||
logger = logging.getLogger(name)
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
# 避免重复添加 handler
|
||||
if logger.handlers:
|
||||
return logger
|
||||
|
||||
# 格式
|
||||
formatter = logging.Formatter(
|
||||
"[%(asctime)s] %(levelname)s %(name)s | %(message)s",
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
|
||||
# 按天轮转:每天午夜切一个新文件,保留 30 天
|
||||
daily_handler = TimedRotatingFileHandler(
|
||||
filename=os.path.join(LOG_DIR, "mokeetext.log"),
|
||||
when="midnight",
|
||||
interval=1,
|
||||
backupCount=30,
|
||||
encoding="utf-8",
|
||||
)
|
||||
daily_handler.suffix = "%Y-%m-%d"
|
||||
daily_handler.setFormatter(formatter)
|
||||
daily_handler.setLevel(logging.INFO)
|
||||
logger.addHandler(daily_handler)
|
||||
|
||||
# 当前日志软链接(始终指向今天的日志)
|
||||
current_log = os.path.join(LOG_DIR, "current.log")
|
||||
|
||||
# 控制台也输出
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setFormatter(formatter)
|
||||
console_handler.setLevel(logging.INFO)
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
# 记录日志文件路径
|
||||
logger.info(f"日志目录: {LOG_DIR}")
|
||||
|
||||
return logger
|
||||
|
||||
|
||||
def get_log_path():
|
||||
"""返回今天的日志文件路径"""
|
||||
today = datetime.now().strftime("%Y-%m-%d")
|
||||
return os.path.join(LOG_DIR, f"mokeetext.log{today}")
|
||||
|
||||
|
||||
# 单例
|
||||
logger = setup_logger()
|
||||
Reference in New Issue
Block a user