Heroku:看日志中的params和sql活动?

Max*_*ams 26 logging ruby-on-rails heroku

当我在服务器上查看我的heroku日志(带heroku logs --tail --app myapp)时,我看到如下所示:

2011-06-21T14:09:25+00:00 app[web.1]: Started PUT "/reports/19.xml" for 77.89.149.137 at 2011-06-21 07:09:25 -0700
2011-06-21T14:09:25+00:00 heroku[router]: PUT myapp.heroku.com/reports/19.xml dyno=web.1 queue=0 wait=0ms service=7ms status=401 bytes=28
2011-06-21T14:09:26+00:00 heroku[nginx]: PUT /reports/19.xml HTTP/1.1 | 77.89.149.137 | 656 | http | 401
Run Code Online (Sandbox Code Playgroud)

在我的本地日志中,我会看到这样的事情:

Started PUT "/reports/19" for 127.0.0.1 at 2011-06-21 15:27:01 +0100
  Processing by ReportsController#update as XML
  Parameters: {"report"=>{"workflow_status"=>"3"}, "id"=>"19"}
  Person Load (0.9ms)  SELECT "people".* FROM "people" WHERE "people"."email" = 'madeupemai@lkklj.com' LIMIT 1
  Report Load (0.4ms)  SELECT "reports".* FROM "reports" WHERE "reports"."id" = 19 LIMIT 1
DEPRECATION WARNING: Object#returning has been deprecated in favor of Object#tap. (called from update_report at /home/max/work/rails_apps/flamingo_container/flamingo/vendor/plugins/resource_this/lib/resource_this.rb:135)
Creating scope :open. Overwriting existing method Task.open.
  Task Load (2.0ms)  SELECT "tasks".* FROM "tasks" WHERE "tasks"."id" = 14 LIMIT 1
Completed 200 OK in 1648ms (Views: 568.2ms | ActiveRecord: 3.2ms)
Run Code Online (Sandbox Code Playgroud)

即更多信息,特别是params,来自路由器的信息,生成的sql,任何渲染的模板等.

有谁知道我怎么能让我的heroku日志像我的开发一样冗长?我已经做了以下事情:

1)在相关(rails 3)环境文件中设置日志级别:

config.log_level = :debug
Run Code Online (Sandbox Code Playgroud)

2)告诉heroku使用不同的记录器级别,如http://devcenter.heroku.com/articles/logging中所述

heroku config:add LOG_LEVEL=DEBUG --app myapp #from CLI
Run Code Online (Sandbox Code Playgroud)

两者都没有任何区别......任何想法都有吗?
谢谢,最大

iwa*_*bed 39

您实际上想要在Heroku日志中显示SQL/params输出.您可以通过将以下所示的行添加到文件中的config块来执行此production.rb操作:

MyAppNameHere::Application.configure do

  # add this line
  config.logger = Logger.new(STDOUT)

end
Run Code Online (Sandbox Code Playgroud)

顺便说一句,将日志级别设置为调试只意味着Rails.logger.debug当您使用Heroku时将输出到日志

  • 真棒!这对我也有用,Heroku的支持告诉我,我的一个宝石正在覆盖输出.将代码添加到`production.rb`而不是`application.rb`可能更合适,只是一个想法. (2认同)