Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Rails 4在日志中显示SQL查询_Sql_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

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

使用Rails 4在日志中显示SQL查询,sql,ruby-on-rails,ruby-on-rails-4,Sql,Ruby On Rails,Ruby On Rails 4,我在Ubuntu14.04上通过终端“终结者”和外壳“鱼壳”使用Rails 4.0.4和Ruby 2.1以及Thin 1.6.2 在开发模式下启动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(*) F

我在Ubuntu14.04上通过终端“终结者”和外壳“鱼壳”使用Rails 4.0.4和Ruby 2.1以及Thin 1.6.2

在开发模式下启动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语句记录到标准输出中,从而在终端中显示它们。由于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/environments/development.rb中的
config.log\u level
设置为
:debug
并重新启动本地服务器,控制台:

 config.log_level = :debug

默认情况下,在生产模式下引导rails时不会看到它。试着以开发模式启动它。我忘了提到我已经处于开发模式。。。gem能让查询在日志中显示吗?因为我没有接触环境配置文件…您希望rails在哪里显示SQL查询?在本地桌面或服务器中?如果是,那么是哪个服务器?我已经更新了答案,请按照它。请检查mark是否解决了您的问题谢谢Jack!就这样!这不能解决我的问题。。即使按照你说的做,sql查询仍然没有显示。默认的日志级别是:在开发模式下调试。所以这个条目不会改变任何东西,