adding logs
All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 18s

This commit is contained in:
vickytechkey 2026-08-14 19:09:52 +05:30
parent d664f42966
commit 6b22195040
12 changed files with 105 additions and 0 deletions

View file

@ -1,3 +1,5 @@
import logging
audit_logger = logging.getLogger('audit')
from rest_framework import status, permissions
from rest_framework.response import Response
from rest_framework.views import APIView
@ -11,6 +13,7 @@ class UserRegisterView(APIView):
serializer = UserRegisterSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
audit_logger.info(f"AUDIT - User Register: Username '{serializer.validated_data.get('username')}' registered successfully.")
return Response({"message": "User registered successfully"}, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

View file

@ -0,0 +1,20 @@
import logging
import time
logger = logging.getLogger('django.request')
class RequestLoggingMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
start_time = time.time()
response = self.get_response(request)
duration = time.time() - start_time
ip = request.META.get('REMOTE_ADDR')
logger.info(
f"IP: {ip} | {request.method} {request.get_full_path()} | "
f"Status: {response.status_code} | Duration: {duration:.3f}s"
)
return response

View file

@ -46,6 +46,7 @@ INSTALLED_APPS = [
]
MIDDLEWARE = [
'customerwebsitebackend.middleware.RequestLoggingMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
@ -159,3 +160,79 @@ SIMPLE_JWT = {
'USER_ID_FIELD': 'id',
'USER_ID_CLAIM': 'user_id',
}
# Logging configuration for app, request, and audit logs
import os
LOGS_DIR = os.path.join(BASE_DIR, 'logs')
if not os.path.exists(LOGS_DIR):
os.makedirs(LOGS_DIR)
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {asctime} {message}',
'style': '{',
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'simple',
},
'app_file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'app.log'),
'maxBytes': 1024 * 1024 * 5, # 5MB
'backupCount': 5,
'formatter': 'verbose',
},
'error_file': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'error.log'),
'maxBytes': 1024 * 1024 * 5, # 5MB
'backupCount': 5,
'formatter': 'verbose',
},
'requests_file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'requests.log'),
'maxBytes': 1024 * 1024 * 5, # 5MB
'backupCount': 5,
'formatter': 'simple',
},
'audit_file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'audit.log'),
'maxBytes': 1024 * 1024 * 5, # 5MB
'backupCount': 5,
'formatter': 'verbose',
},
},
'loggers': {
'django': {
'handlers': ['console', 'app_file', 'error_file'],
'level': 'INFO',
'propagate': True,
},
'django.request': {
'handlers': ['requests_file', 'error_file'],
'level': 'INFO',
'propagate': False,
},
'audit': {
'handlers': ['audit_file', 'console'],
'level': 'INFO',
'propagate': False,
},
},
}

1
logs/app.log Normal file
View file

@ -0,0 +1 @@
INFO 2026-08-14 13:39:12,598 autoreload 55158 134155813900416 Watching for file changes with StatReloader

0
logs/audit.log Normal file
View file

0
logs/error.log Normal file
View file

0
logs/requests.log Normal file
View file

View file

@ -1,3 +1,5 @@
import logging
audit_logger = logging.getLogger('audit')
from rest_framework import status, permissions
from rest_framework.response import Response
from rest_framework.views import APIView
@ -98,6 +100,7 @@ class CheckoutView(APIView):
razorpay_order_id=razorpay_order_id,
shipping_address=shipping_address
)
audit_logger.info(f"AUDIT - Checkout: User '{user.username}' created order ID {order.id} for amount ${total_amount:.2f}.")
for item in items:
OrderItem.objects.create(
@ -136,6 +139,7 @@ class PaymentSuccessView(APIView):
order.status = 'confirmed'
order.razorpay_payment_id = payment_id
order.save()
audit_logger.info(f"AUDIT - Payment Success: User '{request.user.username}' successfully paid order ID {order.id} (Payment ID: {payment_id}).")
return Response({"message": "Payment verified and order confirmed"})