使用Rails 4在日志中显示SQL查询

我在Ubuntu 14.04上通过我的终端“终结者”和我的shell“Fish Shell”在Ruby 2.1和Thin 1.6.2上使用Rails 4.0.4。

当我在开发模式下启动Rails服务器时,我的日志中没有SQL查询,只加载了JS和HTML文件。

我正在寻找类似的东西:

User Load (3.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3 ORDER BY "users"."id" ASC LIMIT 1 (2.0ms) SELECT COUNT(*) FROM "users" WHERE (driver_register_state_cd = -2) 

rails控制台永远不会写入日志文件,但您可以非常轻松地实现它,例如,如果您在启动rails控制台后执行以下操作

 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') 

我通过创建初始化文件得到了我想要的东西:

 # initializers/sql_logging.rb ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT) 

这似乎也使得日志记录不再具有丑陋的时间戳。

将config / environment / development.rb中的config.log_level设置为:debug并重新启动本地服务器,console:

  config.log_level = :debug