2009-10-28 11 views
6

Esiste un modo per disattivare i registri SQL in Rails, oltre a modificare il livello di registro? Ho alcune istruzioni logger.debug che mi piacerebbe stampare nei miei modelli ActiveRecord, ma voglio nascondere le istruzioni SQL.Modo per disabilitare i log di Rails SQL?

risposta

4

È possibile Moneky-patch, mettere questo in un file, ad esempio config/initializers/disable_ar_logging.rb:

class ActiveRecord::ConnectionAdapters::AbstractAdapter 
    def log_info(*args); end 
end 
1

Dan,

È questo in modalità di produzione o sviluppo? Se si tratta di modalità di sviluppo questo è di solito quello che faccio:

logger.info("DEBUG my message here") 
logger.info("DEBUG #{my_object.inspect}") 

tail -f log/development | grep DEBUG 
+0

Non è utile, non disattiva la registrazione. –

1

Ecco cosa ha funzionato per me in Rails 3.0.5:

class ActiveRecord::ConnectionAdapters::AbstractAdapter 
    def log(sql, name) 
     name ||= "SQL" 
     yield 
    rescue Exception => e 
     message = "#{e.class.name}: #{e.message}: #{sql}" 
     @logger.debug message if @logger 
     raise translate_exception(e, message) 
    end 
    end 

E 'this method con la linea che scrive nel registro rimosso. Gli accessi alla cache SQL sono ancora visualizzati nel log e non ho capito come disabilitarli.

Problemi correlati