首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Rails 4在日志中显示SQL查询

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

Stack Overflow用户
提问于 2014-05-01 04:21:19
回答 3查看 20.3K关注 0票数 18

我通过我的终端"Terminator“和Shell”Fish shell“在Ubuntu 14.04上使用带有Ruby2.1的Rails 4.0.4和Thin 1.6.2。

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

我在搜索类似这样的东西:

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-01 06:52:56

rails控制台从不写入日志文件,但是您可以很容易地实现这一点,例如,如果您在启动rails控制台后执行以下命令

代码语言:javascript
复制
ActiveRecord::Base.logger = Logger.new STDOUT

rails会将所有SQL语句记录到stdout中,从而在终端中显示它们。由于Logger.new接受任何流作为第一个参数,您可以让它写入rails development.log:

代码语言:javascript
复制
ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')
票数 35
EN

Stack Overflow用户

发布于 2015-10-03 20:01:13

将config/environments/development.rb中的config.log_level设置为:debug并重启本地服务器、控制台:

代码语言:javascript
复制
 config.log_level = :debug
票数 7
EN

Stack Overflow用户

发布于 2015-08-20 01:36:03

通过创建一个初始化器文件,我得到了我想要的:

代码语言:javascript
复制
# initializers/sql_logging.rb
ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)

这似乎也避免了日志记录预先加上难看的时间戳。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23397341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档