2011-11-01 12 views
20

Mientras que la característica detallada de las llamadas SQL/ActiveRecord es útil la mayor parte del tiempo, me gustaría desactivarla en los casos en que tengo algún bucle en curso.Desactivar sql detallado/ActiveRecord para Rails 3.1.1

¿Hay alguna manera de desactivarlo?

irb(main):055:0> City.first 
    ←[1m←[35mCity Load (1.0ms)←[0m SELECT `cities`.* FROM `cities` LIMIT 1 
=> #<City id: 1, name: "bla bla", state_id: 1, zip: nil, country_id: nil, 
created_at: "2011-03-27 14:11:28", updated_at: "2011-08-16 11:14:36", guid: "5PK 
fvvz2Gsi"> 
+3

Sí, puede desactivarlo: http://stackoverflow.com/questions/7759321/disable-rails-3-1-sql-logging –

+0

Gracias, @JohnBachir =) – Abdo

Respuesta

25

En la consola:
Desactivar:

old_logger = ActiveRecord::Base.logger 
ActiveRecord::Base.logger = nil 

Habilitar:

ActiveRecord::Base.logger = old_logger 
+1

¿Hay alguna otra forma de hacerlo? ? Esto está causando errores en el código que usa logger.debug. Me gustaría desactivar los que no escribí manualmente. – Abdo

+41

Otra forma de hacerlo, como se menciona en http://stackoverflow.com/questions/7759321/disable-rails-3-1-sql-logging, es 'ActiveRecord :: Base.logger.level = 1' para convertir el cerrar sesión (establece el nivel de registro en información) y 'ActiveRecord :: Base.logger.level = 0' para volver a activarlo (establece el nivel de registro para depuración). –

+0

@HenrikN es esto permanente, o solo para la sesión? – FloatingRock

4

En Rails 4 He estado molesto por declaraciones de registro de SQL ActiveRecord en medio de las especificaciones de mi por lo Lo desactivo agregando esto a config/environments/test.rb:

Rails.application.configure do 
    # ... 
    config.log_level = :info 
end 
Cuestiones relacionadas