Heroku: увидеть параметры и активность SQL в журналах? - PullRequest
26 голосов
/ 21 июня 2011

Когда я просматриваю свои логи 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

В то время как в локальном журнале я вижу что-то вроде этого:

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)

То есть с гораздо большей информацией, в частности, с параметрами, информацией от маршрутизатора, сгенерированным sql, любыми отрисованными шаблонами и т. Д. И т. Д.

Кто-нибудь знает, как я могу сделать мой журнал heroku таким подробным?как моя разработка одна?Я уже сделал следующее:

1) Установите уровень журнала в соответствующем (rails 3) файле среды:

config.log_level = :debug

2) Скажите героку, чтобы использовать другой уровень регистратора,как описано в http://devcenter.heroku.com/articles/logging

heroku config:add LOG_LEVEL=DEBUG --app myapp #from CLI

Ничего не изменилось ... есть идеи у кого-нибудь?
спасибо, макс.

Ответы [ 6 ]

39 голосов
/ 02 августа 2011

По сути, вы хотите отобразить вывод SQL / params в журналах Heroku.Вы можете сделать это, добавив показанную ниже строку в блок config в вашем файле production.rb:

MyAppNameHere::Application.configure do

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

end

Кстати, установка уровня отладки в журнале означает, что Rails.logger.debug выведетв журналы, когда вы на Heroku

2 голосов
/ 31 июля 2011

В вашем файле production.rb добавьте config.log_level = :debug и повторно разверните. Это даст вам те же логи, что и в режиме разработки:)

1 голос
/ 04 августа 2011

Требуемый подробный журнал создается функцией start_processing в log_subscriber.rb.

action_controller / log_subscriber.rb:

def start_processing(event)
  payload = event.payload
  params  = payload[:params].except(*INTERNAL_PARAMS)

  info "  Processing by #{payload[:controller]}##{payload[:action]} as #{payload[:formats].first.to_s.upcase}"
  info "  Parameters: #{params.inspect}" unless params.empty?
end

Я проверял с помощью rails 3.0.4 в среде разработки и производства. В обеих средах у нас есть подробные журналы.

Это журнал информационного уровня. Вот почему уровень журнала отладки не меняет вывод.

Я установил плагин, используемый heroku rails_log_stdout ( Heroku logging ), но у меня все еще есть нужный вывод.

Прямо сейчас я не могу проверить с heroku, чтобы выяснить, почему у вас нет всех журналов.

В примере heroku (см. Ведение журнала Heroku, поиск по разделу) мы не видим строки «Обработка» и «Параметры». Я думаю, что либо этот метод не вызывается, когда приложение работает на heroku (оно каким-то образом отключено), либо heroku пропускает журналы, начиная с пробелов. Не могли бы вы попробовать зарегистрировать сообщения, начинающиеся с пробелов, и посмотреть, показывает ли их герою?

0 голосов
/ 19 сентября 2016

Похоже, сервер пумы не очень хорошо работает с Heroku. В моем проекте я попробовал все, но он все равно не регистрировался. Затем я заменил Puma на Unicorn, и Бэм, полные журналы отображаются.

0 голосов
/ 03 июля 2015

Настоящая проблема на самом деле связана с тем, как Heroku работает в сочетании с рельсами.Правильный способ решить эту проблему - добавить: gem 'rails_12factor', group: :production

См. https://devcenter.heroku.com/articles/rails-integration-gems для получения дополнительной информации по этому вопросу

0 голосов
/ 29 июля 2011

Rails не генерирует эти журналы в рабочем режиме. http://groups.google.com/group/heroku/browse_thread/thread/d778fafedc9a378a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...