@ -7,7 +7,11 @@ from max_bot.models import Client
# Папка для логов активности пользователей
# Папка для логов активности пользователей
LOG_DIR = os . path . join ( os . path . dirname ( os . path . abspath ( __file__ ) ) , ' .. ' , ' log ' , ' user_activity ' )
LOG_DIR = os . path . join ( os . path . dirname ( os . path . abspath ( __file__ ) ) , ' .. ' , ' log ' , ' user_activity ' )
os . makedirs ( LOG_DIR , exist_ok = True )
try :
os . makedirs ( LOG_DIR , exist_ok = True )
except Exception as e :
print ( f " ⚠️ Ошибка создания папки для логов: { e } " )
_lock = Lock ( )
_lock = Lock ( )
@ -26,6 +30,7 @@ def log_user_action(
Логирует действие пользователя в структурированном JSON - формате .
Логирует действие пользователя в структурированном JSON - формате .
Запись добавляется в файл user_activity_YYYY - MM - DD . log .
Запись добавляется в файл user_activity_YYYY - MM - DD . log .
"""
"""
try :
timestamp = datetime . now ( ) . isoformat ( )
timestamp = datetime . now ( ) . isoformat ( )
log_entry = {
log_entry = {
" timestamp " : timestamp ,
" timestamp " : timestamp ,
@ -53,3 +58,5 @@ def log_user_action(
with _lock :
with _lock :
with open ( log_file , ' a ' , encoding = ' utf-8 ' ) as f :
with open ( log_file , ' a ' , encoding = ' utf-8 ' ) as f :
f . write ( json . dumps ( log_entry , ensure_ascii = False ) + ' \n ' )
f . write ( json . dumps ( log_entry , ensure_ascii = False ) + ' \n ' )
except Exception as e :
print ( f " ⚠️ Ошибка записи лога: { e } " )