class Ezlog::Rails::ActiveRecord::LogSubscriber
Public Instance Methods
sql(event)
click to toggle source
# File lib/ezlog/rails/active_record/log_subscriber.rb, line 5 def sql(event) ::ActiveRecord::Base.logger.debug log_message_from(event) end
Private Instance Methods
basic_message_from(event)
click to toggle source
# File lib/ezlog/rails/active_record/log_subscriber.rb, line 18 def basic_message_from(event) { message: "SQL - #{event.payload[:name]} (#{event.duration.round(3)}ms)", sql: event.payload[:sql], duration_sec: (event.duration / 1000.0).round(5) } end
log_message_from(event)
click to toggle source
# File lib/ezlog/rails/active_record/log_subscriber.rb, line 11 def log_message_from(event) basic_message_from(event).tap do |message| params = params_from event message[:params] = params if params.any? end end
params_from(event)
click to toggle source
# File lib/ezlog/rails/active_record/log_subscriber.rb, line 26 def params_from(event) return {} if event.payload.fetch(:binds, []).empty? params = event.payload[:binds] values = type_casted_values_from event param_value_pairs = params.zip(values).map do |param, value| [param.name, value_of(param, value)] end Hash[param_value_pairs] rescue NoMethodError params end
type_casted_values_from(event)
click to toggle source
# File lib/ezlog/rails/active_record/log_subscriber.rb, line 40 def type_casted_values_from(event) binds = event.payload[:type_casted_binds] binds.respond_to?(:call) ? binds.call : binds end
value_of(param, value)
click to toggle source
# File lib/ezlog/rails/active_record/log_subscriber.rb, line 45 def value_of(param, value) param.type.binary? ? '-binary data-' : value end