Rails控制台和Rails服务器日志的输出颜色是什么意思?

9

我正在Ubuntu 14.04中的通用终端(应用程序仅称为“终端”)上运行rails serverrails console

每当我运行涉及数据库的命令时,控制台会输出它发送的SQL查询,但有时文本是青色的,有时是紫色的。例如,在此控制台输出中:

2.2.2 :025 >   pl = ProjectLevel.find_by(name: 'Premium')

ProjectLevel Load (0.5ms)  SELECT  "project_levels".* FROM "project_levels" WHERE "project_levels"."deleted_at" 
IS NULL AND "project_levels"."name" = $1 LIMIT 1  [["name", "Premium"]]

=> #<ProjectLevel id: 1, name: "Premium", deleted_at: nil, created_at: "2015-07-15 15:45:40", updated_at: "2015-07-15 15:45:40"> 

这里显示的颜色与我的控制台上的颜色不同。

其中写着ProjectLevel Load (0.5ms)有时会是青绿色,有时会是紫色,但其他部分的文本都没有变化。这种颜色实际上有什么含义吗?它是否告诉我查询成功或返回的数据?通常在Rails中,这类问题都很直观(例如当测试套件返回绿色文本与红色文本时,用来告诉你测试是否成功),但我似乎找不到这些颜色来自何处的任何信息。

1个回答

15
在Rails 5中,颜色表示查询类型:
  • 蓝色表示选择(selects)

    enter image description here

  • 黄色表示更新(updates)

    enter image description here

  • 绿色表示插入(inserts)

    enter image description here

  • 红色表示删除(deletes)

    enter image description here

除了用于alter tablebegin/commit等语句的其他颜色外.


Rails 5之前,这些颜色没有任何意义。它们只是交替出现,以便您可以轻松地确定一个查询停止,下一个查询开始。

10.times { Photo.all } 的结果如下图所示:

enter image description here


这对我来说似乎是违反直觉的。一直以来,我都认为紫色表示查询失败(因为相邻的颜色不够多,无法看出颜色只是交替出现)。但至少现在我知道了! - StephanieS
有没有办法自定义颜色? - jedi
没事了,我找到了,只需编辑~/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.4/lib/active_record/log_subscriber.rb并修改颜色,然后重新启动服务器。 - jedi
@jedi 迟来的回复,但那是个坏主意。你永远不应该编辑你安装的 gem!这些更改不会跟随你的项目(每次其他人安装时都会从 rubygems.org 获取“真正”的 gem),并且如果你升级 gem,它们将会丢失。 - user229044
1
@hiveer 这是查询执行所需的时间。 - user229044
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接