Подтвердить что ты не робот

Скрыть рендеринг частичных данных из журналов рельсов

Я полагаю, что по умолчанию при ведении журнала рельсов на производстве не выводится рендеринг всех партиалов. Это должно войти в разработку, но не в производство.

Однако, я вижу это в производстве, и я не уверен, как удалить это. Мои журналы слишком шумные. Моя производственная среда - это Heroku, работающий с Unicorn и использующий Papertrail для просмотра моих логов. Я знаю, что Unicorn делает что-то непонятное с журналами, и чтобы они работали должным образом, мне сначала нужно было добавить это в мой production.rb:

  config.logger = Logger.new(STDOUT)
  config.logger.level = Logger.const_get('INFO')

(поясняется здесь: http://help.papertrailapp.com/kb/configuration/unicorn)

Но даже с log_level INFO я вижу огромные блоки во всех моих журналах:

Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.7ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (2.1ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_category.html.erb (4.8ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.3ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (0.4ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_category.html.erb (4.4ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.3ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (0.3ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_category.html.erb (1.8ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.4ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (4.6ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_category.html.erb (2.1ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.3ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (0.4ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_category.html.erb (4.1ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.2ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (1.8ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_category.html.erb (6.0ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.5ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (0.8ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_category.html.erb (1.9ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_caption.html.erb (0.3ms) 
Jun 25 22:15:15 tacktile app/web.1:    Rendered photos/pieces/_rights.html.erb (0.7ms) 
4b9b3361

Ответ 1

Я получил следующий ответ от papertrail:

Я думаю, что самый быстрый способ справиться с этим - использовать нашу фильтрацию журналов функциональность. Это позволит вам отбросить все, что соответствует регулярному выражению, и избавит вас от необходимости внесения изменений в конфигурацию приложения.

В долгосрочной перспективе вы, вероятно, захотите отключить эти сообщения в источник. Логун, вероятно, лучший выбор для этого. Вы можете найти его также удаляет несколько других бит, но дайте ему понять, и дайте мне знать, что вы думаете.

Я знаю, что в данный момент это, вероятно, не имеет отношения к вам, но для в будущем вы также можете найти другие полезные советы здесь. Это охватывает логарифм, удаление статических запросов и ненужных действий,

Сообщите мне, если вам нужна помощь в том, что упоминалось выше.

Ответ 2

Для Rails 4 (по крайней мере):

Попробуйте это в вашей конфигурации /environment/development.rb

config.action_view.logger = nil

Ответ 3

Используйте Lograge, он удаляет времена рендеринга для частичных

Ответ 4

Вместо того, чтобы полностью отключить ведение журнала действий (как описано в другом ответе), я решил изменить уровень ведения журнала для рендеринга на DEBUG. Таким образом, его можно легко исключить из производственных журналов, установив уровень журнала INFO или выше.

Обратите внимание, это для рельсов 5.2. Я не уверен, будет ли это работать на других версиях.

module ViewLoggingOverride
  def info(progname = nil, &block)
    logger.debug(progname, &block) if logger
  end
end

ActionView::LogSubscriber.include(ViewLoggingOverride)

Соответствующий код рельсов:

https://github.com/rails/rails/blob/5-2-stable/actionview/lib/action_view/log_subscriber.rb

https://github.com/rails/rails/blob/5-2-stable/activesupport/lib/active_support/log_subscriber.rb#L93-L99