class Logged::LogSubscriber::ActionController
Log subscriber for ActionController
events
Public Instance Methods
halted_callback(event)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 26 def halted_callback(event) Thread.current[:logged_action_controller_filter] = event.payload[:filter] end
process_action(event)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 12 def process_action(event) return if ignore?(event, :info) data = process_action_data(event) data[:duration] = event.duration.to_f.round(2) info(event, data) end
redirect_to(event)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 22 def redirect_to(event) Thread.current[:logged_action_controller_location] = event.payload[:location] end
Private Instance Methods
cached_event_data()
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 74 def cached_event_data location = Thread.current[:logged_action_controller_location] Thread.current[:logged_action_controller_location] = nil filter = Thread.current[:logged_action_controller_filter] Thread.current[:logged_action_controller_filter] = nil { location: location, filter: filter }.reject { |_k, v| v.blank? } end
extract_path(payload)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 41 def extract_path(payload) uri = URI.parse(payload[:path]) { path: uri.path } end
extract_request(payload)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 32 def extract_request(payload) { method: payload[:method].to_sym, format: payload[:format], controller: payload[:params]['controller'], action: payload[:params]['action'] }.reject { |_k, v| v.blank? } end
extract_runtimes(payload)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 62 def extract_runtimes(payload) view_runtime, db_runtime = nil view_runtime = payload[:view_runtime].to_f.round(2) if payload.key?(:view_runtime) db_runtime = payload[:db_runtime].to_f.round(2) if payload.key?(:db_runtime) { view_runtime: view_runtime, db_runtime: db_runtime }.reject { |_k, v| v.blank? } end
extract_status(payload)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 47 def extract_status(payload) status = payload[:status] error = payload[:exception] if status { status: status.to_i } elsif error exception, message = error { status: 500, error: "#{exception}:#{message}" } else { status: 0 } end end
process_action_data(event)
click to toggle source
# File lib/logged/log_subscriber/action_controller.rb, line 87 def process_action_data(event) data = { event: event.name } payload = event.payload data.merge!(extract_request(payload)) data.merge!(cached_event_data) data.merge!(extract_path(payload)) data.merge!(extract_status(payload)) data.merge!(extract_runtimes(payload)) data end