Rails: причина конфигурации журнала показывает разницу между консолью и файлом журнала? - PullRequest
0 голосов
/ 17 июля 2011

У меня есть приложение Rails 3.Используя конфигурацию ведения журнала по умолчанию, когда я запускаю команду типа

logger.warn "some message"

Сообщение логгера появляется в консоли и в журналах.

Теперь я добавляю одну строку в production.rb

config.logger = Logger.new(Rails.root.join("log","biteme.log"))

Сообщение логгера не появляется в консоли, только логи.Затем я изменяю это на следующее:

config.logger = Logger.new(config.paths.log.first)

И теперь сообщение появляется в консоли и в логах.Здесь есть некоторые знания, которые мне не хватает, потому что не имеет смысла, почему в первой конфигурации пропускается сообщение журнала, идущее на консоль.Есть идеи?

Ответы [ 2 ]

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

Наконец дошли до корня проблемы.Я использовал драгоценный камень jasonp, который конфликтовал с бревнами в Heroku.Локально, без проблем (конечно) но работает от Heroku, сообщения журнала не появлялись.Когда я удалил этот драгоценный камень - сообщения журнала появляются на Heroku.Теперь я счастливый турист.

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

Rails фактически теперь использует ActiveSupport::BufferedLogger вместо стандартного Logger класса ruby.

Попробуйте создать свой собственный регистратор этого класса и посмотреть, работает ли он:

config.logger = ActiveSupport::BufferedLogger.new(Rails.root.join("log","biteme.log"))
...