Localhost経由でWebrickサーバーにアクセスするとき、またはRails migrationsを実行すると、私のdevelopment.logは正しく書き込まれます。ただし、起動時にRails = "Rails c"のコンソールで、新しいデータベースオブジェクトを作成して、 "user.save"のようなコマンドで保存します。コンソールにSQLステートメントが表示されますが、開発ログには何も書き込まれません。
このような質問に答えるほとんどの人は、「設定が正しい環境に設定されていることを確認してください」と言います。私はこれを実行しました。私のシステムでは、これはまったく新しいRailsアプリで発生します。
任意の助けいただければ幸いです。ありがとう!
Railsコンソールがログファイルに書き込むことはありませんが、たとえばRails consoleを起動した後に次のコマンドを実行すると、
ActiveRecord::Base.logger = Logger.new STDOUT
RailsはすべてのSQLステートメントをstdoutに記録し、端末に表示します。それ以来 Logger.new
は、最初の引数として任意のストリームを受け入れます。Rails development.logに書き込むだけです。
ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')
私はRails 2.3.8にいます。上記の答えは実際にはうまくいきません。
ActiveRecord::Base.logger = Logger.new STDOUT
以下は実際に機能します:
ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)
リファレンス http://www.shanison.com/2012/03/05/show-sql-statements-in-Rails-console/