Files
chunyu_project/logs/utils.py
T
2026-08-05 23:59:15 +08:00

40 lines
1.2 KiB
Python

import threading
def log_event(event_type, user, description='', metadata=None, result='success',
target_user=None, ip_address=None, user_agent=None, request=None):
def _save():
try:
from .models import SystemEventLog
if request and not ip_address:
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip_addr = x_forwarded_for.split(',')[0].strip()
else:
ip_addr = request.META.get('REMOTE_ADDR')
else:
ip_addr = ip_address
if request and not user_agent:
ua = request.META.get('HTTP_USER_AGENT', '')[:500]
else:
ua = user_agent or ''
SystemEventLog.objects.create(
event_type=event_type,
user=user,
target_user=target_user,
description=description[:500],
metadata=metadata or {},
ip_address=ip_addr,
user_agent=ua,
result=result,
)
except Exception:
pass
thread = threading.Thread(target=_save)
thread.daemon = True
thread.start()