Inc*_*982 30 ruby logging development-environment ruby-on-rails-3
当我通过localhost访问我的Webrick服务器时,或者当我运行rails迁移时,我的development.log被正确写入.但是,当我使用"rails c"启动我的rails控制台然后尝试创建一个新的数据库对象并通过像"user.save"这样的命令保存它时,我在控制台中看到了SQL语句,但没有写入开发日志.
大多数人在回答类似这样的问题时说"检查以确保配置设置为正确的环境".我已经完成了这个,并且可以在我的系统上说这是一个全新的rails应用程序.
任何帮助,将不胜感激.谢谢!
Mar*_*sen 78
rails控制台从不写入日志文件,但您可以非常轻松地实现它,例如,如果在启动rails控制台后执行以下操作
ActiveRecord::Base.logger = Logger.new STDOUT
Run Code Online (Sandbox Code Playgroud)
rails会将所有SQL语句记录到stdout,从而在终端中显示它们.并且因为Logger.new接受任何流作为第一个参数,你可以让它写入rails development.log:
ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')
Run Code Online (Sandbox Code Playgroud)
Sha*_*son 34
我在Rails 2.3.8中,上面的答案并不适合我.
ActiveRecord::Base.logger = Logger.new STDOUT
Run Code Online (Sandbox Code Playgroud)
以下实际上有效:
ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)
Run Code Online (Sandbox Code Playgroud)
参考http://www.shanison.com/2012/03/05/show-sql-statements-in-rails-console/