module SQLOrigin::LogHook

@private

Public Instance Methods

log(sql, name = "SQL", binds = [], statement_name = nil) { || ... } click to toggle source
# File lib/sql_origin/hooks.rb, line 4
def log(sql, name = "SQL", binds = [], statement_name = nil)
  @instrumenter.instrument(
      "sql.active_record",
      :sql            => sql,
      :name           => name,
      :connection_id  => object_id,
      :binds          => binds,
      :statement_name => statement_name,
      :backtrace      => SQLOrigin.filtered_backtrace[0, 3]) { yield }
rescue Exception => e
  message = "#{e.class.name}: #{e.message}: #{sql}"
  @logger.debug message if @logger
  exception = translate_exception(e, message)
  exception.set_backtrace e.backtrace
  raise exception
end