Error messages should include relevant contextual information such as IDs, file paths, job identifiers, and other debugging details to make troubleshooting easier. Generic error messages make it difficult to identify the specific instance or operation that failed, especially in systems processing multiple items concurrently.
When logging errors, include:
Example of improved error logging:
# Poor: Generic error message
Rails.logger.error("Failed to handle video conversion completion")
# Good: Contextual error message
Rails.logger.error("Failed to handle video conversion completion for upload ID #{upload.id} and job ID #{args[:job_id]}")
# Poor: Missing context in model errors
Rails.logger.error("Failed to create optimized video: #{optimized_video.errors.full_messages.join(", ")}")
# Good: Include relevant entity context
Rails.logger.error("Failed to create optimized video for upload ID #{upload.id}: #{optimized_video.errors.full_messages.join(", ")}")
This practice significantly reduces debugging time and helps identify patterns in failures across different environments and deployments.
Enter the URL of a public GitHub repository