Class: Faultline::LoggedException
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Faultline::LoggedException
- Defined in:
- app/models/faultline/logged_exception.rb
Constant Summary collapse
- HOSTNAME =
Socket.gethostname
Class Method Summary collapse
- .class_names ⇒ Object
- .controller_actions ⇒ Object
- .create_from_exception(controller, exception, data) ⇒ Object
- .host_name ⇒ Object
- .ransackable_associations(auth_object = nil) ⇒ Object
- .ransackable_attributes(auth_object = nil) ⇒ Object
Instance Method Summary collapse
Class Method Details
.class_names ⇒ Object
80 81 82 |
# File 'app/models/faultline/logged_exception.rb', line 80 def self.class_names select("DISTINCT exception_class").order(:exception_class).collect(&:exception_class) end |
.controller_actions ⇒ Object
84 85 86 |
# File 'app/models/faultline/logged_exception.rb', line 84 def self.controller_actions select("DISTINCT controller_name, action_name").order(:controller_name, :action_name).collect(&:controller_action) end |
.create_from_exception(controller, exception, data) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/models/faultline/logged_exception.rb', line 19 def create_from_exception(controller, exception, data) = exception..to_s += "\n* Extra Data\n\n#{data}" unless data.blank? create!( exception_class: exception.class.name, controller_name: controller.controller_path, action_name: controller.action_name, message: , backtrace: exception.backtrace, request: controller.request, user_info: controller.respond_to?(:current_user, true) ? controller.current_user : nil, remote_ip: controller.request.remote_ip ) end |
.host_name ⇒ Object
34 35 36 |
# File 'app/models/faultline/logged_exception.rb', line 34 def host_name HOSTNAME end |
.ransackable_associations(auth_object = nil) ⇒ Object
14 15 16 |
# File 'app/models/faultline/logged_exception.rb', line 14 def self.ransackable_associations(auth_object = nil) [] end |
.ransackable_attributes(auth_object = nil) ⇒ Object
8 9 10 11 12 |
# File 'app/models/faultline/logged_exception.rb', line 8 def self.ransackable_attributes(auth_object = nil) %w[action_name backtrace controller_name created_at environment exception_class id message remote_ip request updated_at user_agent user_info] end |
Instance Method Details
#backtrace=(trace) ⇒ Object
51 52 53 54 |
# File 'app/models/faultline/logged_exception.rb', line 51 def backtrace=(trace) trace = sanitize_backtrace(trace) unless trace.is_a?(String) write_attribute :backtrace, trace end |
#controller_action ⇒ Object
76 77 78 |
# File 'app/models/faultline/logged_exception.rb', line 76 def controller_action @controller_action ||= "#{controller_name.camelcase}/#{action_name}" end |
#name ⇒ Object
47 48 49 |
# File 'app/models/faultline/logged_exception.rb', line 47 def name "#{self.exception_class} in #{self.controller_action}" end |
#request=(request) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'app/models/faultline/logged_exception.rb', line 56 def request=(request) if request.is_a?(String) write_attribute :request, request else max = request.env.keys.max { |a, b| a.length <=> b.length } env = request.env.keys.sort.inject [] do |memo, key| memo << "* %-*s: %s" % [max.length, key, request.env[key].to_s.strip] end write_attribute(:environment, (env << "* Process: #{$$}" << "* Server : #{self.class.host_name}").join("\n")) method_str = request.get? ? "" : " #{request.method.to_s.upcase}" write_attribute(:request, [ "* URL:#{method_str} #{request.protocol}#{request.env["HTTP_HOST"]}#{request.fullpath}", "* Format: #{request.format.to_s}", "* Parameters: #{request.parameters.inspect}", "* Rails Root: #{rails_root}" ].join("\n")) end end |