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:
pacnpal
2026-01-04 18:36:23 -05:00
parent 95700c7d7b
commit bc4a3c7557
6 changed files with 40 additions and 27 deletions

View File

@@ -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}"

View File

@@ -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)}