Class: Raven::Configuration
- Inherits:
-
Object
- Object
- Raven::Configuration
- Defined in:
- lib/raven/configuration.rb
Constant Summary collapse
- IGNORE_DEFAULT =
[ 'AbstractController::ActionNotFound', 'ActionController::InvalidAuthenticityToken', 'ActionController::RoutingError', 'ActionController::UnknownAction', 'ActiveRecord::RecordNotFound', 'CGI::Session::CookieStore::TamperedWithCookie', 'Mongoid::Errors::DocumentNotFound', 'Sinatra::NotFound', ]
Instance Attribute Summary collapse
-
#app_dirs_pattern ⇒ Object
Exceptions from these directories to be ignored.
-
#async ⇒ Object
(also: #async?)
Optional Proc to be used to send events asynchronously.
-
#catch_debugged_exceptions ⇒ Object
Catch exceptions before they’re been processed by ActionDispatch::ShowExceptions or ActionDispatch::DebugExceptions.
-
#context_lines ⇒ Object
Number of lines of code context to capture, or nil for none.
-
#current_environment ⇒ Object
Returns the value of attribute current_environment.
-
#encoding ⇒ Object
Encoding type for event bodies.
-
#environments ⇒ Object
Whitelist of environments that will send notifications to Sentry.
-
#excluded_exceptions ⇒ Object
Which exceptions should never be sent.
-
#host ⇒ Object
Returns the value of attribute host.
-
#http_adapter ⇒ Object
The Faraday adapter to be used.
-
#json_adapter ⇒ Object
DEPRECATED: This option is now ignored as we use our own adapter.
-
#logger ⇒ Object
Logger to use internally.
-
#open_timeout ⇒ Object
Timeout waiting for the connection to open in seconds.
-
#path ⇒ Object
Returns the value of attribute path.
-
#port ⇒ Object
Returns the value of attribute port.
-
#processors ⇒ Object
Processors to run on data before sending upstream.
-
#project_id ⇒ Object
Project ID number to send to the Sentry server.
-
#project_root ⇒ Object
Project directory root.
-
#proxy ⇒ Object
Proxy information to pass to the HTTP adapter.
-
#public_key ⇒ Object
Public key for authentication with the Sentry server.
-
#release ⇒ Object
Returns the value of attribute release.
-
#sanitize_credit_cards ⇒ Object
Sanitize values that look like credit card numbers.
-
#sanitize_fields ⇒ Object
additional fields to sanitize.
-
#scheme ⇒ Object
Accessors for the component parts of the DSN.
-
#secret_key ⇒ Object
Secret key for authentication with the Sentry server.
-
#send_modules ⇒ Object
Include module versions in reports?.
-
#server ⇒ Object
Simple server string (setter provided below).
-
#server_name ⇒ Object
Returns the value of attribute server_name.
-
#should_capture ⇒ Object
Provide a configurable callback to determine event capture.
-
#silence_ready ⇒ Object
Silence ready message.
-
#ssl ⇒ Object
SSl settings passed direactly to faraday’s ssl option.
-
#ssl_ca_file ⇒ Object
The path to the SSL certificate file.
-
#ssl_verification ⇒ Object
Should the SSL certificate of the server be verified?.
-
#tags ⇒ Object
Default tags for events.
-
#timeout ⇒ Object
Timeout when waiting for the server to return data in seconds.
Instance Method Summary collapse
-
#[](option) ⇒ Object
Allows config options to be read like a hash.
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #log_excluded_environment_message ⇒ Object
- #send_in_current_environment? ⇒ Boolean
- #verify! ⇒ Object
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/raven/configuration.rb', line 114 def initialize self.server = ENV['SENTRY_DSN'] if ENV['SENTRY_DSN'] @context_lines = 3 self.current_environment = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'default' self.send_modules = true self.excluded_exceptions = IGNORE_DEFAULT self.processors = [Raven::Processor::RemoveCircularReferences, Raven::Processor::UTF8Conversion, Raven::Processor::SanitizeData] self.ssl_verification = true self.encoding = 'gzip' self.timeout = 1 self.open_timeout = 1 self.proxy = nil self. = {} self.async = false self.catch_debugged_exceptions = true self.sanitize_fields = [] self.sanitize_credit_cards = true self.environments = [] self.release = ENV['HEROKU_SLUG_COMMIT'] if self.release.nil? || self.release.empty? self.release = File.read(File.join(Rails.root, 'REVISION')).strip rescue nil end if self.release.nil? || self.release.empty? self.release = `git rev-parse --short HEAD`.strip rescue nil end end |
Instance Attribute Details
#app_dirs_pattern ⇒ Object
Exceptions from these directories to be ignored
88 89 90 |
# File 'lib/raven/configuration.rb', line 88 def app_dirs_pattern @app_dirs_pattern end |
#async ⇒ Object Also known as: async?
Optional Proc to be used to send events asynchronously.
85 86 87 |
# File 'lib/raven/configuration.rb', line 85 def async @async end |
#catch_debugged_exceptions ⇒ Object
Catch exceptions before they’re been processed by ActionDispatch::ShowExceptions or ActionDispatch::DebugExceptions
92 93 94 |
# File 'lib/raven/configuration.rb', line 92 def catch_debugged_exceptions @catch_debugged_exceptions end |
#context_lines ⇒ Object
Number of lines of code context to capture, or nil for none
37 38 39 |
# File 'lib/raven/configuration.rb', line 37 def context_lines @context_lines end |
#current_environment ⇒ Object
Returns the value of attribute current_environment.
69 70 71 |
# File 'lib/raven/configuration.rb', line 69 def current_environment @current_environment end |
#encoding ⇒ Object
Encoding type for event bodies
28 29 30 |
# File 'lib/raven/configuration.rb', line 28 def encoding @encoding end |
#environments ⇒ Object
Whitelist of environments that will send notifications to Sentry
40 41 42 |
# File 'lib/raven/configuration.rb', line 40 def environments @environments end |
#excluded_exceptions ⇒ Object
Which exceptions should never be sent
46 47 48 |
# File 'lib/raven/configuration.rb', line 46 def excluded_exceptions @excluded_exceptions end |
#host ⇒ Object
Returns the value of attribute host.
17 18 19 |
# File 'lib/raven/configuration.rb', line 17 def host @host end |
#http_adapter ⇒ Object
The Faraday adapter to be used. Will default to Net::HTTP when not set.
72 73 74 |
# File 'lib/raven/configuration.rb', line 72 def http_adapter @http_adapter end |
#json_adapter ⇒ Object
DEPRECATED: This option is now ignored as we use our own adapter.
79 80 81 |
# File 'lib/raven/configuration.rb', line 79 def json_adapter @json_adapter end |
#logger ⇒ Object
Logger to use internally
31 32 33 |
# File 'lib/raven/configuration.rb', line 31 def logger @logger end |
#open_timeout ⇒ Object
Timeout waiting for the connection to open in seconds
55 56 57 |
# File 'lib/raven/configuration.rb', line 55 def open_timeout @open_timeout end |
#path ⇒ Object
Returns the value of attribute path.
19 20 21 |
# File 'lib/raven/configuration.rb', line 19 def path @path end |
#port ⇒ Object
Returns the value of attribute port.
18 19 20 |
# File 'lib/raven/configuration.rb', line 18 def port @port end |
#processors ⇒ Object
Processors to run on data before sending upstream
49 50 51 |
# File 'lib/raven/configuration.rb', line 49 def processors @processors end |
#project_id ⇒ Object
Project ID number to send to the Sentry server
22 23 24 |
# File 'lib/raven/configuration.rb', line 22 def project_id @project_id end |
#project_root ⇒ Object
Project directory root
25 26 27 |
# File 'lib/raven/configuration.rb', line 25 def project_root @project_root end |
#proxy ⇒ Object
Proxy information to pass to the HTTP adapter
67 68 69 |
# File 'lib/raven/configuration.rb', line 67 def proxy @proxy end |
#public_key ⇒ Object
Public key for authentication with the Sentry server
10 11 12 |
# File 'lib/raven/configuration.rb', line 10 def public_key @public_key end |
#release ⇒ Object
Returns the value of attribute release.
76 77 78 |
# File 'lib/raven/configuration.rb', line 76 def release @release end |
#sanitize_credit_cards ⇒ Object
Sanitize values that look like credit card numbers
101 102 103 |
# File 'lib/raven/configuration.rb', line 101 def sanitize_credit_cards @sanitize_credit_cards end |
#sanitize_fields ⇒ Object
additional fields to sanitize
98 99 100 |
# File 'lib/raven/configuration.rb', line 98 def sanitize_fields @sanitize_fields end |
#scheme ⇒ Object
Accessors for the component parts of the DSN
16 17 18 |
# File 'lib/raven/configuration.rb', line 16 def scheme @scheme end |
#secret_key ⇒ Object
Secret key for authentication with the Sentry server
13 14 15 |
# File 'lib/raven/configuration.rb', line 13 def secret_key @secret_key end |
#send_modules ⇒ Object
Include module versions in reports?
43 44 45 |
# File 'lib/raven/configuration.rb', line 43 def send_modules @send_modules end |
#server ⇒ Object
Simple server string (setter provided below)
7 8 9 |
# File 'lib/raven/configuration.rb', line 7 def server @server end |
#server_name ⇒ Object
Returns the value of attribute server_name.
74 75 76 |
# File 'lib/raven/configuration.rb', line 74 def server_name @server_name end |
#should_capture ⇒ Object
Provide a configurable callback to determine event capture
95 96 97 |
# File 'lib/raven/configuration.rb', line 95 def should_capture @should_capture end |
#silence_ready ⇒ Object
Silence ready message
34 35 36 |
# File 'lib/raven/configuration.rb', line 34 def silence_ready @silence_ready end |
#ssl ⇒ Object
SSl settings passed direactly to faraday’s ssl option
64 65 66 |
# File 'lib/raven/configuration.rb', line 64 def ssl @ssl end |
#ssl_ca_file ⇒ Object
The path to the SSL certificate file
61 62 63 |
# File 'lib/raven/configuration.rb', line 61 def ssl_ca_file @ssl_ca_file end |
#ssl_verification ⇒ Object
Should the SSL certificate of the server be verified?
58 59 60 |
# File 'lib/raven/configuration.rb', line 58 def ssl_verification @ssl_verification end |
#tags ⇒ Object
Default tags for events
82 83 84 |
# File 'lib/raven/configuration.rb', line 82 def @tags end |
#timeout ⇒ Object
Timeout when waiting for the server to return data in seconds
52 53 54 |
# File 'lib/raven/configuration.rb', line 52 def timeout @timeout end |
Instance Method Details
#[](option) ⇒ Object
Allows config options to be read like a hash
183 184 185 |
# File 'lib/raven/configuration.rb', line 183 def [](option) send(option) end |
#log_excluded_environment_message ⇒ Object
195 196 197 |
# File 'lib/raven/configuration.rb', line 195 def Raven.logger.debug "Event not sent due to excluded environment: #{current_environment}" end |
#send_in_current_environment? ⇒ Boolean
191 192 193 |
# File 'lib/raven/configuration.rb', line 191 def send_in_current_environment? !!server && (environments.empty? || environments.include?(current_environment)) end |
#verify! ⇒ Object
199 200 201 202 203 204 |
# File 'lib/raven/configuration.rb', line 199 def verify! raise Error.new('No server specified') unless server raise Error.new('No public key specified') unless public_key raise Error.new('No secret key specified') unless secret_key raise Error.new('No project ID specified') unless project_id end |