class U::Log::ActiveRecordSubscriber

Public Instance Methods

identity(event) click to toggle source
# File lib/u-log/active_record.rb, line 43
def identity(event)
  logger.ulogger.log(name: event.payload[:name], line: event.payload[:line])
end
render_bind(column, value) click to toggle source
# File lib/u-log/active_record.rb, line 8
def render_bind(column, value)
  if column
    if column.binary?
      value = "<#{value.bytesize} bytes of binary data>"
    end

    [column.name, value]
  else
    [nil, value]
  end
end
sql(event) click to toggle source
# File lib/u-log/active_record.rb, line 20
def sql(event)
  payload = event.payload

  return if payload[:name] == 'SCHEMA' || payload[:name] == 'EXPLAIN'

  args = {}

  args[:name] = payload[:name] if payload[:name]
  args[:sql] = payload[:sql].squeeze(' ')

  if payload[:binds] && payload[:binds].any?
    args[:binds] = payload[:binds].inject({}) do |hash,(col, v)|
      k, v = render_bind(col, v)
      hash[k] = v
      hash
    end
  end

  args[:elapsed] = [event.duration.round(1), 'ms']

  logger.ulogger.log(args)
end