Unicorn でタグ付きログを使用し、環境ファイルで次の構成を使用しています。
config.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
config.log_tags = [:uuid]
ここまでは順調ですね。
タグに関しては、方法はありますか -
特定のリクエスト ヘッダーを出力する
カスタム UUID、つまり私が生成できるものを出力します。Rails が出力するデフォルトの UUID が長すぎます。
Unicorn でタグ付きログを使用し、環境ファイルで次の構成を使用しています。
config.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
config.log_tags = [:uuid]
ここまでは順調ですね。
タグに関しては、方法はありますか -
特定のリクエスト ヘッダーを出力する
カスタム UUID、つまり私が生成できるものを出力します。Rails が出力するデフォルトの UUID が長すぎます。
この Gist の例をいくつか参照してください https://gist.github.com/2513183
request オブジェクトにアクセスできる proc を log_tags 配列に追加できます。
その proc で UUID を生成するか、次のように before_filter で ApplicationController から request.env を介して何かを渡すことができます。
#application_controller.rb
before_filter :set_some_request_env
def set_some_request_env
request.env['some_var'] = "Happy"
end
# application.rb
config.log_tags = [
-> request {
request.env['some_var']
}
]
このメソッドを使用して#tagged、特定のブロック内で送信されるすべてのログ メッセージにタグを追加できます。
リクエストまたはコントローラ パラメータからタグ付き出力にパラメータを取得するには、次の手順を実行できます。
#application_controller.rb
around_filter :add_tags_to_logs
def add_tags_to_logs
Rails.logger.tagged(custom_uuid_for_current_user) do
yield
end
end