classQueryTracer < Arproxy::Base defexecute(sql, name=nil) Rails.logger.debug sql Rails.logger.debug caller(1).join("\n") super(sql, name) end end
Arproxy.configure do|config| config.adapter = "mysql2"# A DB Apdapter name which is used in your database.yml config.use QueryTracer end Arproxy.enable!
🎂 Slow Queryのログを出力
Slow Queryのログを出力する場合はこちら。
classSlowQueryLogger < Arproxy::Base definitialize(slow_ms) @slow_ms = slow_ms end
defexecute(sql, name=nil) result = nil ms = Benchmark.ms { result = super(sql, name) } if ms >= @slow_ms Rails.logger.info "Slow(#{ms.to_i}ms): #{sql}" end result end end
Arproxy.configure do|config| config.use SlowQueryLogger, 1000 end
🗻 SQLにコメントを差し込む
SQLにコメントを差し込む場合はこちら。
classCommentAdder < Arproxy::Base defexecute(sql, name=nil) sql += " /*this_is_comment*/" super(sql, name) end end