# frozen_string_literal: true # Airbrake is an online tool that provides robust exception tracking in your # Rails applications. In doing so, it allows you to easily review errors, tie an # error to an individual piece of code, and trace the cause back to recent # changes. Airbrake enables for easy categorization, searching, and # prioritization of exceptions so that when errors occur, your team can quickly # determine the root cause. # # Configuration details: # https://github.com/airbrake/airbrake-ruby#configuration if (project_id = ENV['AIRBRAKE_PROJECT_ID']) && project_key = (ENV['AIRBRAKE_PROJECT_KEY'] || ENV['AIRBRAKE_API_KEY']) Airbrake.configure do |c| # You must set both project_id & project_key. To find your project_id and # project_key navigate to your project's General Settings and copy the # values from the right sidebar. # https://github.com/airbrake/airbrake-ruby#project_id--project_key c.project_id = project_id c.project_key = project_key # Configures the root directory of your project. Expects a String or a # Pathname, which represents the path to your project. Providing this option # helps us to filter out repetitive data from backtrace frames and link to # GitHub files from our dashboard. # https://github.com/airbrake/airbrake-ruby#root_directory c.root_directory = Rails.root # By default, Airbrake Ruby outputs to STDOUT. In Rails apps it makes sense # to use the Rails' logger. # https://github.com/airbrake/airbrake-ruby#logger c.logger = Airbrake::Rails.logger # Configures the environment the application is running in. Helps the # Airbrake dashboard to distinguish between exceptions occurring in # different environments. # NOTE: This option must be set in order to make the 'ignore_environments' # option work. # https://github.com/airbrake/airbrake-ruby#environment c.environment = Rails.env # Setting this option allows Airbrake to filter exceptions occurring in # unwanted environments such as :test. NOTE: This option *does not* work if # you don't set the 'environment' option. # https://github.com/airbrake/airbrake-ruby#ignore_environments c.ignore_environments = %w[test] # A list of parameters that should be filtered out of what is sent to # Airbrake. By default, all "password" attributes will have their contents # replaced. # https://github.com/airbrake/airbrake-ruby#blocklist_keys c.blocklist_keys = [/password/i, /authorization/i] # Alternatively, you can integrate with Rails' filter_parameters. # Read more: https://goo.gl/gqQ1xS # c.blocklist_keys = Rails.application.config.filter_parameters end # A filter that collects request body information. Enable it if you are sure you # don't send sensitive information to Airbrake in your body (such as passwords). # https://github.com/airbrake/airbrake#requestbodyfilter # Airbrake.add_filter(Airbrake::Rack::RequestBodyFilter.new) # Attaches thread & fiber local variables along with general thread information. # Airbrake.add_filter(Airbrake::Filters::ThreadFilter.new) # Attaches loaded dependencies to the notice object # (under context/versions/dependencies). # Airbrake.add_filter(Airbrake::Filters::DependencyFilter.new) # If you want to convert your log messages to Airbrake errors, we offer an # integration with the Logger class from stdlib. # https://github.com/airbrake/airbrake#logger # Rails.logger = Airbrake::AirbrakeLogger.new(Rails.logger) else Rails.logger.warn( "#{__FILE__}: Airbrake project id or project key is not set. " \ "Skipping Airbrake configuration" ) end