Skip to content

More information in the context of each exception #37

@everton

Description

@everton

In order to understand some errors, it is better to have the context that generated them (the params in a controller action, the arguments sent to a job, etc). The code line and stack trace are great, but you need to go after all your registers to understand which record generated that bug, etc.

I totally understand that you are trying to keep the gem as simple as possible, and as is stated in the README:

The goal is to provide a simple, lightweight, and performant solution for tracking exceptions in your Rails application. If you need more features, you should probably use a 3rd party service

I added this information using using the Rails.error.set_context with codes like:

class ApplicationController < ActionController::Base
  before_action { Rails.error.set_context(params: params) }
end

and

class ApplicationJob < ActiveJob::Base
  before_perform do |job|
    Rails.error.set_context(arguments: job.arguments)
  end
end

It worked for the controllers, but for the jobs, active record objects were saved in the context as just a String with their class name, which makes them useless.

I saw the "sanitizer" code, and I can see you chose to create this string instead of, for example, calling the Object#inspect. I have two separate question for this issue:

  1. Is there any reason no not use #inspect instead of creating the errors as just the class name?
  2. What do you think about improving the context identification in the gem itself? Would this go beyond the scope you initially imagined?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions