Class: Sequel::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/instruments.rb

Instance Method Summary collapse

Instance Method Details

#action(sql) ⇒ Object



100
101
102
# File 'lib/instruments.rb', line 100

def action(sql)
  sql[/(\w+){1}/].downcase
end

#log_duration(t, sql) ⇒ Object



85
86
87
88
89
90
91
92
93
94
# File 'lib/instruments.rb', line 85

def log_duration(t, sql)
  level = if t > DB_ERROR
    :error
  elsif t > DB_WARN
    :warning
  else
    :info
  end
  Instruments.write(:level => level, :action => action(sql), :elapsed => t, :sql => sql)
end

#log_exception(e, sql) ⇒ Object



96
97
98
# File 'lib/instruments.rb', line 96

def log_exception(e, sql)
  Instruments.write(:error => true, :exception => e.class, :sql => sql)
end

#log_yield(sql, args = nil) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/instruments.rb', line 71

def log_yield(sql, args=nil)
  sql = "#{sql}; #{args.inspect}" if args
  t0 = Time.now
  begin
    yield
  rescue => e
    log_exception(e, sql)
    raise
  ensure
    t1 = Time.now
    log_duration(Integer((t1-t0)*1000), sql) unless e
  end
end