Files
RasadDam_Backend/Rasaddam_Backend/request_formatter.py

33 lines
992 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import logging
from django.http import HttpRequest
class RequestFormatter(logging.Formatter):
def format(self, record):
request = getattr(record, 'request', None)
if isinstance(request, HttpRequest):
# مرحله ۱: از X-Forwarded-For (در صورت وجود)
ip = request.META.get('HTTP_X_FORWARDED_FOR')
# مرحله ۲: از REMOTE_ADDR
if not ip:
ip = request.META.get('REMOTE_ADDR')
# مرحله ۳: اگر هنوز چیزی نیست، مقدار پیش‌فرض بده (مثلاً localhost)
if not ip:
ip = '127.0.0.1'
# تمیزکاری برای لیست آی‌پی‌ها
if ',' in ip:
ip = ip.split(',')[0].strip()
record.client_ip = ip
record.path = request.path
else:
record.client_ip = '-'
record.path = '-'
return super().format(record)