【问题标题】:Rails logs. what does this meanRails 日志。这是什么意思
【发布时间】:2010-11-25 19:47:08
【问题描述】:

我在我的开发日志中看到了这个。 mCACHE 行是什么意思?它们是 SQL 查询吗?

 ←[1m←[36mTodo Load (1.0ms)←[0m  ←[1mSELECT "todos".* FROM "todos" WHERE ("todos".project_id IN (4,5,6,7,8,9,10,11,12,13))←[0m
 ←[1m←[35mLog Load (1.0ms)←[0m  SELECT "logs".* FROM "logs" WHERE ("logs".todo_id IN (134,135,136))
 ←[1m←[36mCACHE (0.0ms)←[0m  ←[1mSELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1←[0m
 ←[1m←[35mCACHE (0.0ms)←[0m  SELECT "users".* FROM "users" WHERE ("users"."id" = 3) LIMIT 1
 ←[1m←[36mCACHE (0.0ms)←[0m  ←[1mSELECT "users".* FROM "users" WHERE ("users"."id" = 3) LIMIT 1←[0m
 ←[1m←[35mCACHE (0.0ms)←[0m  SELECT "users".* FROM "users" WHERE ("users"."id" = 3) LIMIT 1
 ←[1m←[36mCACHE (0.0ms)←[0m  ←[1mSELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1←[0m
 ←[1m←[35mCACHE (0.0ms)←[0m  SELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1
 ←[1m←[36mCACHE (0.0ms)←[0m  ←[1mSELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1←[0m
 ←[1m←[35mCACHE (0.0ms)←[0m  SELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1
 ←[1m←[36mCACHE (0.0ms)←[0m  ←[1mSELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1←[0m
 ←[1m←[35mCACHE (0.0ms)←[0m  SELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1
 ←[1m←[36mCACHE (0.0ms)←[0m  ←[1mSELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1←[0m
 ←[1m←[35mCACHE (0.0ms)←[0m  SELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1
 ←[1m←[36mCACHE (0.0ms)←[0m  ←[1mSELECT "firms".* FROM "firms" WHERE ("firms"."id" = 2) LIMIT 1←[0m

【问题讨论】:

  • 如果您正在使用“-r”开关来查看日志,则可以使用该开关。 “less -r development.log”,这将正确解释ANSI代码并使事情看起来不错。
  • @Roadmaster:很高兴知道,谢谢!
  • 日志的输出应该是cat'd 或tail -f'd 到终端可以解释代码的屏幕。如果您使用编辑器,或 less 不使用 -r,您将获得 uuuuu-gly 输出。

标签: ruby-on-rails logging


【解决方案1】:

[numberm 只是 ANSI color codes - 它应该在智能终端中显示漂亮的颜色,否则看起来很糟糕。

CACHE 是“一个 sql 查询,缓存(之前执行,现在从缓存中加载)” - 参见例如this

【讨论】:

  • 谢谢!你知道windows的智能终端吗?
  • 嗯,最有名的可能是 PuTTY - 一个 SSH 客户端/终端模拟器:chiark.greenend.org.uk/~sgtatham/putty/download.html(虽然不能用作本地控制台)。另外,@rwilliams 说了什么。
  • 感谢您的提示。我去看看。
  • +1 适用于多功能工具 Putty。它也可以切片和切丁。
【解决方案2】:

这就是 Rails SQL 缓存有效的证据:

http://guides.rubyonrails.org/caching_with_rails.html#sql-caching

【讨论】:

    【解决方案3】:

    缓存意味着您已经运行了相同的查询,并且它的结果存储在内存中,因此查询实际上并未针对数据库运行。它们都是查询,这是 Active Record 在与数据库对话时实际执行的操作。

    【讨论】: