When I access my Webrick server via the localhost, or when I run rails migrations, my development.log is correctly written to. However, when I bootup my rails console with "rails c" and then try and create a new database object and save it via a command like "user.save", I see SQL statements in the console, but nothing is written to in the development log.
Most people when answering a question similar to this say "check to make sure that the config is set to the correct environment". I've done this, and can say on my system this happens for a completely new rails app.
Any help would be appreciated. Thanks!
the rails console never writes to the log file, but you can achieve it quite easily, for example, if you execute following after starting the rails console
ActiveRecord::Base.logger = Logger.new STDOUT
rails will log all SQL statements to stdout, thus display them in your terminal.
and since Logger.new
accepts any stream as first argument, you could just let it write to the rails development.log:
ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')
I am in Rails 2.3.8, the above answer doesn't really work for me.
ActiveRecord::Base.logger = Logger.new STDOUT
The following actually works:
ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)
Reference http://www.shanison.com/2012/03/05/show-sql-statements-in-rails-console/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With