Module: SqlTracer::SqlLogger
- Defined in:
- lib/sql_tracer/sql_logger.rb
Class Method Summary collapse
Class Method Details
.build_sql_struct(sql) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/sql_tracer/sql_logger.rb', line 18 def self.build_sql_struct(sql) sql_struct = { :sql => sql, :operator => 'unknown', :db => 'unknown', :time => Time.now.to_f } re = /^(insert into|update|delete|select)\s+(\S+)/i begin result = sql.scan(re) sql_struct[:operator] = result[0][0] sql_struct[:db] = result[0][1] rescue end sql_struct end |
.log_sql(sql) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/sql_tracer/sql_logger.rb', line 3 def self.log_sql(sql) begin if Helper.should_output_sql?(sql) backtrace = Thread.current.backtrace backtrace = Formatter.remove_filtered_path(backtrace) Formatter.print_all(sql, backtrace) unless Helper.disable_console_output? SqlTracer::SqlStack.sql_stack << { :sql => build_sql_struct(sql), :stack => backtrace } end rescue => e Rails.logger.error "Failed to log sql in SqlTracer. Error: #{e.message}" Rails.logger.error e.backtrace.join("\n") end end |