web-dev-qa-db-fra.com

Rails console n'est pas émettant des instructions SQL à mon journal de développement

Lorsque j'accède à mon serveur Webrick via le localhost, ou lorsque j'enregistre Rails migrations, mon développement.log est correctement écrit à. Cependant, lorsque je déménage mon Rails Console avec "Rails C", puis essayez de créer un nouvel objet de base de données et enregistrez-le via une commande comme "utilisateur.save", je vois des instructions SQL dans la console, mais rien n'est écrit dans le journal de développement.

La plupart des gens pour répondre à une question similaire à celle-ci "Vérifiez que la configuration est définie sur l'environnement correct". Je l'ai fait et je peux dire sur mon système cela se produit pour un tout nouveau Rails application.

Toute aide serait appréciée. Merci!

30
Inc1982

the Rails console n'écrit jamais au fichier journal, mais vous pouvez l'atteindre assez facilement, par exemple, si vous exécutez la suivante après le démarrage de Rails console

ActiveRecord::Base.logger = Logger.new STDOUT

Les rails vont enregistrer toutes les instructions SQL à STDOUT, les affichent ainsi dans votre terminal. et depuis Logger.new Accepte tout flux comme premier argument, vous pouvez simplement le laisser écrire sur Rails Development.log:

ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')
77
Marian Theisen

Je suis in Rails 2.3.8, la réponse ci-dessus ne fonctionne pas vraiment pour moi.

ActiveRecord::Base.logger = Logger.new STDOUT

Ce qui suit fonctionne réellement:

ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)

Référence http://www.shanison.com/2012/03/05/show-sql-statifs-in-Rails-console/

34
Shanison