Class: Raven::Configuration

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

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.tags = {}
  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_patternObject

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

#asyncObject 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_exceptionsObject

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_linesObject

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_environmentObject

Returns the value of attribute current_environment.



69
70
71
# File 'lib/raven/configuration.rb', line 69

def current_environment
  @current_environment
end

#encodingObject

Encoding type for event bodies



28
29
30
# File 'lib/raven/configuration.rb', line 28

def encoding
  @encoding
end

#environmentsObject

Whitelist of environments that will send notifications to Sentry



40
41
42
# File 'lib/raven/configuration.rb', line 40

def environments
  @environments
end

#excluded_exceptionsObject

Which exceptions should never be sent



46
47
48
# File 'lib/raven/configuration.rb', line 46

def excluded_exceptions
  @excluded_exceptions
end

#hostObject

Returns the value of attribute host.



17
18
19
# File 'lib/raven/configuration.rb', line 17

def host
  @host
end

#http_adapterObject

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_adapterObject

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

#loggerObject

Logger to use internally



31
32
33
# File 'lib/raven/configuration.rb', line 31

def logger
  @logger
end

#open_timeoutObject

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

#pathObject

Returns the value of attribute path.



19
20
21
# File 'lib/raven/configuration.rb', line 19

def path
  @path
end

#portObject

Returns the value of attribute port.



18
19
20
# File 'lib/raven/configuration.rb', line 18

def port
  @port
end

#processorsObject

Processors to run on data before sending upstream



49
50
51
# File 'lib/raven/configuration.rb', line 49

def processors
  @processors
end

#project_idObject

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_rootObject

Project directory root



25
26
27
# File 'lib/raven/configuration.rb', line 25

def project_root
  @project_root
end

#proxyObject

Proxy information to pass to the HTTP adapter



67
68
69
# File 'lib/raven/configuration.rb', line 67

def proxy
  @proxy
end

#public_keyObject

Public key for authentication with the Sentry server



10
11
12
# File 'lib/raven/configuration.rb', line 10

def public_key
  @public_key
end

#releaseObject

Returns the value of attribute release.



76
77
78
# File 'lib/raven/configuration.rb', line 76

def release
  @release
end

#sanitize_credit_cardsObject

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_fieldsObject

additional fields to sanitize



98
99
100
# File 'lib/raven/configuration.rb', line 98

def sanitize_fields
  @sanitize_fields
end

#schemeObject

Accessors for the component parts of the DSN



16
17
18
# File 'lib/raven/configuration.rb', line 16

def scheme
  @scheme
end

#secret_keyObject

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_modulesObject

Include module versions in reports?



43
44
45
# File 'lib/raven/configuration.rb', line 43

def send_modules
  @send_modules
end

#serverObject

Simple server string (setter provided below)



7
8
9
# File 'lib/raven/configuration.rb', line 7

def server
  @server
end

#server_nameObject

Returns the value of attribute server_name.



74
75
76
# File 'lib/raven/configuration.rb', line 74

def server_name
  @server_name
end

#should_captureObject

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_readyObject

Silence ready message



34
35
36
# File 'lib/raven/configuration.rb', line 34

def silence_ready
  @silence_ready
end

#sslObject

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_fileObject

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_verificationObject

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

#tagsObject

Default tags for events



82
83
84
# File 'lib/raven/configuration.rb', line 82

def tags
  @tags
end

#timeoutObject

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

Parameters:

  • option (Symbol)

    Key for a given attribute



183
184
185
# File 'lib/raven/configuration.rb', line 183

def [](option)
  send(option)
end

#log_excluded_environment_messageObject



195
196
197
# File 'lib/raven/configuration.rb', line 195

def log_excluded_environment_message
  Raven.logger.debug "Event not sent due to excluded environment: #{current_environment}"
end

#send_in_current_environment?Boolean

Returns:

  • (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

Raises:



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