Добавление пользовательских полей Logstasher в ApplicationController - PullRequest
1 голос
/ 13 марта 2020

Я пытаюсь зарегистрировать дополнительные настраиваемые поля, используя Gem Logstasher.

Мне нужно зарегистрировать некоторые параметры ответа, но logstasher не поддерживает сами параметры регистрации, используя конфигурацию, поэтому я помещаю код в метод after_action в ApplicationController.

ApplicationController

  after_action :set_logstasher_params

  def set_logstasher_params
    if LogStasher.enabled?
      res_params = JSON.parse(response.body.as_json)
      LogStasher.add_custom_fields do |fields|
        fields[:res_params] = res_params
      end
    end
  end

Это инициализатор logstasher

инициализатор / logstasher.rb

if LogStasher.enabled?
  LogStasher.add_custom_fields do |fields|
    fields[:request_params] = request.filtered_parameters
    LogStasher::CustomFields.add(:myapi_runtime)
  end

  LogStasher.add_custom_fields_to_request_context do |fields|    
    fields[:request_params] = request.filtered_parameters
  end
end

Проблема заключается в следующем: После запуска сервера rails первый отправляемый запрос регистрирует только те параметры, которые указаны в logstasher.rb, за исключением параметров, добавленных в ApplicationController.

Но после этого каждый запрос регистрирует все указанное logstasher.rb, а также метод ApplicationController.

Кто-нибудь имеет представление, почему в первый раз не регистрируются параметры ответа из метода ApplicationController?

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