mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2026-02-05 09:25:18 -05:00
refactor: Replace direct logger.error calls with capture_and_log in accounts services and conditionally pass error_id during ApplicationError creation.
This commit is contained in:
@@ -130,23 +130,28 @@ class ErrorService:
|
||||
# Merge request_context into metadata
|
||||
merged_metadata = {**(metadata or {}), "request_context": request_context}
|
||||
|
||||
# Build create kwargs, only including error_id if provided
|
||||
create_kwargs = {
|
||||
"error_type": error_type,
|
||||
"error_message": error_message[:5000], # Limit message length
|
||||
"error_stack": error_stack[:10000], # Limit stack length
|
||||
"error_code": error_code,
|
||||
"severity": severity,
|
||||
"source": source,
|
||||
"endpoint": endpoint,
|
||||
"http_method": http_method,
|
||||
"user_agent": user_agent[:1000],
|
||||
"user": user,
|
||||
"ip_address_hash": ip_address_hash,
|
||||
"metadata": merged_metadata,
|
||||
"environment": environment or {},
|
||||
}
|
||||
# Only include error_id if explicitly provided, else let model default
|
||||
if error_id is not None:
|
||||
create_kwargs["error_id"] = error_id
|
||||
|
||||
# Create and save error
|
||||
app_error = ApplicationError.objects.create(
|
||||
error_id=error_id or None, # Let model generate if not provided
|
||||
error_type=error_type,
|
||||
error_message=error_message[:5000], # Limit message length
|
||||
error_stack=error_stack[:10000], # Limit stack length
|
||||
error_code=error_code,
|
||||
severity=severity,
|
||||
source=source,
|
||||
endpoint=endpoint,
|
||||
http_method=http_method,
|
||||
user_agent=user_agent[:1000],
|
||||
user=user,
|
||||
ip_address_hash=ip_address_hash,
|
||||
metadata=merged_metadata,
|
||||
environment=environment or {},
|
||||
)
|
||||
app_error = ApplicationError.objects.create(**create_kwargs)
|
||||
|
||||
logger.info(
|
||||
f"Captured error {app_error.short_error_id}: {error_type} from {source}"
|
||||
|
||||
@@ -14,6 +14,8 @@ from django.conf import settings
|
||||
from django.core.files.uploadedfile import UploadedFile
|
||||
from PIL import ExifTags, Image
|
||||
|
||||
from apps.core.utils import capture_and_log
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -193,5 +195,5 @@ class MediaService:
|
||||
"available_space": "unknown",
|
||||
}
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to get storage stats: {str(e)}")
|
||||
capture_and_log(e, 'Get storage stats', source='service', severity='low')
|
||||
return {"error": str(e)}
|
||||
|
||||
Reference in New Issue
Block a user