Class: RailsExceptionLogger::LoggedException
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- RailsExceptionLogger::LoggedException
- Defined in:
- app/models/rails_exception_logger/logged_exception.rb
Constant Summary collapse
- HOSTNAME =
`hostname -s`.chomp
Class Method Summary collapse
- .class_names ⇒ Object
- .controller_actions ⇒ Object
- .create_from_exception(controller, exception, data) ⇒ Object
- .host_name ⇒ Object
Instance Method Summary collapse
Class Method Details
.class_names ⇒ Object
63 64 65 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 63 def self.class_names select("DISTINCT exception_class").order(:exception_class).collect(&:exception_class) end |
.controller_actions ⇒ Object
67 68 69 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 67 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
6 7 8 9 10 11 12 13 14 15 16 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 6 def create_from_exception(controller, exception, data) = exception..inspect << "\n* Extra Data\n\n#{data}" unless data.blank? e = create! \ :exception_class => exception.class.name, :controller_name => controller.controller_path, :action_name => controller.action_name, :message => , :backtrace => exception.backtrace, :request => controller.request end |
.host_name ⇒ Object
18 19 20 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 18 def host_name HOSTNAME end |
Instance Method Details
#backtrace=(trace) ⇒ Object
35 36 37 38 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 35 def backtrace=(trace) trace = sanitize_backtrace(trace) * "\n" unless trace.is_a?(String) write_attribute :backtrace, trace end |
#controller_action ⇒ Object
59 60 61 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 59 def controller_action @controller_action ||= "#{controller_name.camelcase}/#{action_name}" end |
#name ⇒ Object
31 32 33 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 31 def name "#{self.exception_class} in #{self.controller_action}" end |
#request=(request) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/models/rails_exception_logger/logged_exception.rb', line 40 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 |env, key| env << '* ' + ("%-*s: %s" % [max.length, key, request.env[key].to_s.strip]) end write_attribute(:environment, (env << "* Process: #{$$}" << "* Server : #{self.class.host_name}") * "\n") write_attribute(:request, [ "* URL:#{" #{request.method.to_s.upcase}" unless request.get?} #{request.protocol}#{request.env["HTTP_HOST"]}#{request.fullpath}", "* Format: #{request.format.to_s}", "* Parameters: #{request.parameters.inspect}", "* Rails Root: #{rails_root}" ] * "\n") end end |