Ruby on rails Rails语义记录器标记在升级到4.4.1后停止工作
升级前 我使用带有标记的rails\u semantic\u logger来记录请求id和会话id。我在我的日志初始化器中使用了这些标记,它可以添加带有这些id的标记:Ruby on rails Rails语义记录器标记在升级到4.4.1后停止工作,ruby-on-rails,ruby,ruby-on-rails-5,ruby-on-rails-5.1,Ruby On Rails,Ruby,Ruby On Rails 5,Ruby On Rails 5.1,升级前 我使用带有标记的rails\u semantic\u logger来记录请求id和会话id。我在我的日志初始化器中使用了这些标记,它可以添加带有这些id的标记: config.log_tags = [ #:host, #:remote_ip, lambda { |request| "#{request.uuid}"[0..32] }, lambda { |request| "#{request.cookie_jar["_session_
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" }
环境:
- rails 5.0.4
- ruby 2.4.2
- 语义日志4.2.0
- rails_semantic_loggger 4.1.3
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
-语义日志4.2.0
-rails_semantic_loggger 4.4.1
我创建了一个示例应用程序来描述这个问题:版本4.3或4.4的语义记录器需要更早地设置config.log\u标记。它需要在config/[ENV_NAME].rb或application.rb中设置。config/initializers/*.rb中的Initializer太晚了,因为Rails和Rack的记录器之前已经初始化过