コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

デフォルトのRailsログで突き合わせ用のIDとして使われているのはリクエストヘッダのX-Request-ID

Railsログの先頭に一意のIDが出てるなー、きっとよしなに何か振ってくれているんだろうなーとか思ったら違った。という話。

環境

rails (5.2.0)

やっている設定

enviromentsのこの記述

# Prepend all log lines with the following tags.
config.log_tags = [:request_id]

request_idの出元は、というとActionDispatchのRequestIdの記述

def call(env)
  req = ActionDispatch::Request.new env
  req.request_id = make_request_id(req.x_request_id)
  @app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
end

rails/actionpack/lib/action_dispatch/middleware/request_id.rb

nginxなどが X-Request-ID をつけてくれていたりするので、それがある場合はnginx側のログとの突き合わせも可能になる

参考URL

詳しく挙動を知りたい場合は以下のリンク参考のこと。