class Rack::Middleware::QueryTracer::ProxyImpl

Public Class Methods

new(logger) click to toggle source
# File lib/rack/middleware/query_tracer.rb, line 36
def initialize(logger)
  @logger = logger
end

Public Instance Methods

execute(sql, name = nil) click to toggle source
Calls superclass method
# File lib/rack/middleware/query_tracer.rb, line 40
def execute(sql, name = nil)
  code_position_tag = "#{caller.select { |n| /\/app\// =~ n }[0].to_s.sub(/^.+?(\/app\/)/, '\1')}"
  do_logging(code_position_tag, sql)
  super(sql, name)
end

Private Instance Methods

do_logging(tag, sql) click to toggle source
# File lib/rack/middleware/query_tracer.rb, line 48
def do_logging(tag, sql)
  @logger.tagged("QueryTracer") do
    @logger.tagged(tag) do
      @logger.info sql

      case sql
      when /SELECT/, /UPDATE/
        case sql
        when /1=0/
          @logger.tagged("ALERT") do
            @logger.info("1=0 QUERY: #{sql}")
          end
        end
      end
    end
  end
end