24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/wildsight/context/rack.rb', line 24
def rack_report(env, response = nil)
env.delete(RACK_ENV_KEY)
rack_data[:request_target] ||= env['SCRIPT_NAME'].to_s + env['PATH_INFO'].to_s
env.each_pair do |key,value|
name = key.to_s
rack_data[:request_headers] ||= {}
rack_data[:request_headers][key] = value if REQUEST_INCLUDE_KEYS.include?(name)
rack_data[:request_headers][key] = value if name.start_with?('HTTP_')
rack_data[:request_headers][key] = value if name.start_with?('REQUEST_')
rack_data[:request_headers][key] = value if name.start_with?('SERVER_')
end
if !rack_data[:session_id] && !env['rack.session'].nil? && env['rack.session'].respond_to?(:id)
rack_data[:session_id] ||= env['rack.session'].id
end
REQUEST_EXCLUDE_KEYS.each { |key| rack_data[:request_headers].delete(key) }
if response
rack_data[:response_code] ||= response[0]
rack_data[:response_headers] ||= response[1].dup
RESPONSE_EXCLUDE_KEYS.each { |key| rack_data[:response_headers].delete(key) }
end
exception = env['rack.exception'] || env['action_dispatch.exception'] || env['sinatra.error']
if exception
exception_report(exception)
end
self.submit
rescue => e
@agent.logger.log(:error, e)
end
|