Module: QueryTrace
- Included in:
- ActiveRecord::ConnectionAdapters::AbstractAdapter
- Defined in:
- lib/query_trace.rb
Constant Summary collapse
- VENDOR_RAILS_REGEXP =
%r(([\\/:])vendor\1rails\1)
Class Method Summary collapse
Instance Method Summary collapse
- #clean_trace(trace) ⇒ Object
- #format_trace(trace) ⇒ Object
- #log_info_with_trace(sql, name, runtime) ⇒ Object
Class Method Details
.append_features(klass) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/query_trace.rb', line 2 def self.append_features(klass) super klass.class_eval do unless method_defined?(:log_info_without_trace) alias_method :log_info_without_trace, :log_info alias_method :log_info, :log_info_with_trace end end klass.class_eval %( def row_even @@row_even end ) end |
Instance Method Details
#clean_trace(trace) ⇒ Object
41 42 43 44 45 |
# File 'lib/query_trace.rb', line 41 def clean_trace(trace) return trace unless defined?(RAILS_ROOT) trace.select{|t| /#{Regexp.escape(File.(RAILS_ROOT))}/ =~ t}.reject{|t| VENDOR_RAILS_REGEXP =~ t}.collect{|t| t.gsub(RAILS_ROOT + '/', '')} end |
#format_trace(trace) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/query_trace.rb', line 27 def format_trace(trace) if ActiveRecord::Base.colorize_logging if row_even = "35;2" else = "36;2" end trace.collect{|t| " \e[#{}m#{t}\e[0m"}.join("\n") else trace.join("\n ") end end |
#log_info_with_trace(sql, name, runtime) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/query_trace.rb', line 17 def log_info_with_trace(sql, name, runtime) log_info_without_trace(sql, name, runtime) return unless @logger and @logger.debug? return if / Columns$/ =~ name trace = clean_trace(caller[2..-1]) @logger.debug(format_trace(trace)) end |