Module: SQLOrigin::LogHook

Defined in:
lib/sql_origin/hooks.rb

Instance Method Summary collapse

Instance Method Details

#log(sql, name = "SQL", binds = [], statement_name = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 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