È possibile eseguire il patch su BufferedLogger per fare ciò che si desidera. Mettere questo file nel percorso config/initializers
:
require 'active_support/buffered_logger'
class ActiveSupport::BufferedLogger
def add(severity, message = nil, progname = nil, &block)
add_debugging_details(severity)
@log.add(severity, message, progname, &block)
end
private
EXCLUDE_CALLERS = Gem.paths.path.clone << 'script/rails' << RbConfig::CONFIG['rubylibdir'] << __FILE__
def add_debugging_details(severity)
caller_in_app = caller.select do |line|
EXCLUDE_CALLERS.detect { |gem_path| line.starts_with?(gem_path) }.nil?
end
return if caller_in_app.empty?
@log.add(severity, "Your code in \e[1;33m#{caller_in_app.first}\e[0;0m triggered:")
end
end if Rails.env.development?
fonte
2012-06-06 11:32:21
questa versione di rota è specifica? Non posso trovarlo a lavorare con Ruby 1.9.3, rails3.2.4, usando la console. Potrei vedere la query essere licenziata ma non il numero della riga di codice. –
Con rails 3.2.4 e ruby 1.9.3 funzionano per me ... È necessario aggiungere QueryTrace.enable! in qualche inizializzatore ... – Pioz
Grazie, gentile signore. Questo è stato di enorme aiuto per rintracciare alcuni problemi n + 1. – antinome