見從這個要點這裏https://gist.github.com/2513183
一些例子可以一個進程添加到log_tags陣列,它可以訪問請求對象。
可以生成在PROC一個UUID,或者您也可以通過request.env從你的ApplicationController中的before_filter傳遞的東西,就像這樣:
#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
方法爲在給定塊內發送的所有日誌消息添加標籤。
爲了讓您的請求或控制器PARAMS參數爲標記的輸出,你可以做到以下幾點:
#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
使用Rails 4.2.6,之前由控制器處理查詢的標籤是這樣計算你的價值將不會被設置。 –