Module: Tartarus::Logger::ClassMethods
- Defined in:
- lib/tartarus/logger.rb
Instance Method Summary collapse
Instance Method Details
#log(env, exception) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/tartarus/logger.rb', line 22 def log(env, exception) logged = create do |logged_exception| if env['action_controller.instance'] controller = env['action_controller.instance'] group_id = "#{exception.class.name}#{exception..gsub(/(#<.+):(.+)(>)/,'\1\3')}#{controller.controller_path}#{controller.action_name}" end logged_exception.exception_class = exception.class.name logged_exception. = exception. logged_exception.backtrace = exception.backtrace * "\n" logged_exception.request = self.normalize_request_data(env) if env['action_controller.instance'] logged_exception.controller_path = controller.controller_path if controller logged_exception.action_name = controller.action_name if controller logged_exception.group_id = Digest::SHA1.hexdigest(group_id) if group_id end logged.handle_notifications logged end |
#normalize_request_data(env) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/tartarus/logger.rb', line 42 def normalize_request_data(env) request = env['action_controller.instance'].request request_details = { :enviroment => { :process => $$, :server => `hostname -s`.chomp }, :session => { :variables => request.env['rack.session'].to_hash, :cookie => request.env['rack.request.cookie_hash'] }, :http_details => { :method => request.method.to_s.upcase, :url => "#{request.protocol}#{request.env["HTTP_HOST"]}#{request.fullpath}", :format => request.format.to_s, :parameters => request.filtered_parameters } } request.env.each_pair do |key, value| request_details[:enviroment][key.downcase] = value if key.match(/^[A-Z_]*$/) end return request_details end |