После обновления до 4.4.1 теги семантического регистратора Rails перестали работать - PullRequest
0 голосов
/ 08 апреля 2019

До обновления Я использовал rails_semantic_logger с тегами для регистрации идентификатора запроса и идентификатора сеанса. В моем журнале инициализировался инициализатор, и он работал, добавляя теги с такими идентификаторами:

  config.log_tags = [
      #:host,
      #:remote_ip,
      lambda { |request| "#{request.uuid}"[0..32] },
      lambda { |request| "#{request.cookie_jar["_session_id"]}" },
  ]

Пример строки журнала:

2019-04-07 13:54:03.563661 I [25929:puma 001] [["a2eb2610-9db1-475b-8d0a-547dc514d", "7713d31653d81aa6d9fe1882c282cc95"]] (499.8ms) DebugController -- Completed #show -- { :controller => "DebugController", :action => "show", :format => "*/*", :method => "GET", :path => "/debug", :status => 200, :view_runtime => 463.81, :rendered_format => :js, :variant => [], :db_runtime => 32.32, :status_message => "OK" }

Окружающая среда:

  • рельсы 5.0.4
  • ruby ​​2.4.2
  • semantic_logger 4.2.0
  • rails_semantic_loggger 4.1.3

После обновления Недавно я обновил свою среду до более новых версий рельсов и драгоценных камней (конкретные версии ниже). Я не могу настроить автоматическую регистрацию тегов. Я попробовал несколько комбинаций с named_tags, как это:

  config.log_tags = {
      host:       :host,
      ip:         :remote_ip,
      request_id: :request_id,
      session_id: -> request { request.cookie_jar['_session_id'] }
  }

Но это просто не работает:

2019-04-07 14:19:04.131479 I [23455:puma 001] (394.2ms) DebugController -- Completed #show -- { :controller => "DebugController", :action => "show", :format => "*/*", :method => "GET", :path => "/debug", :status => 200, :view_runtime => 384.13, :db_runtime => 6.99, :status_message => "OK" }

Окружающая среда: - рельсы 5.1.7 - ruby ​​2.4.2 - semantic_logger 4.2.0 - rails_semantic_loggger 4.4.1

Я создал образец приложения, чтобы изобразить проблему: https://github.com/camaeel/logger-error

1 Ответ

0 голосов
/ 13 апреля 2019

Семантическому логгеру из версии 4.3 или 4.4 требуется настройка config.log_tags ранее Его нужно установить в config / [ENV_NAME] .rb или application.rb. Инициализатор в config / initializer / *. Rb слишком поздний, поскольку регистраторы для Rails & Rack были инициализированы раньше.

...