24 lines
1.2 KiB
Python
24 lines
1.2 KiB
Python
# utils/stats_logger.py
|
|
import os
|
|
import csv
|
|
from datetime import datetime
|
|
|
|
def log_menu_stats(user_id: str, main_menu: str, sub_menu: str = ""):
|
|
"""Записывает действие пользователя в лог статистики динамически в зависимости от среды"""
|
|
try:
|
|
# Динамически определяем корень проекта (на один уровень выше папки utils)
|
|
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
log_dir = os.path.join(base_dir, "logs")
|
|
os.makedirs(log_dir, exist_ok=True)
|
|
log_file = os.path.join(log_dir, "menu_stats.csv")
|
|
|
|
file_exists = os.path.isfile(log_file)
|
|
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
with open(log_file, "a", newline="", encoding="utf-8-sig") as f:
|
|
writer = csv.writer(f, delimiter=";")
|
|
if not file_exists:
|
|
writer.writerow(["Timestamp", "User_ID", "Main_Menu", "Sub_Menu"])
|
|
writer.writerow([timestamp, user_id, main_menu, sub_menu])
|
|
except Exception as e:
|
|
print(f"Ошибка записи статистики меню: {e}") |