Backupify подготовил отличную статью об этом: http://blog.backupify.com/2012/06/27/contextual-logging-with-log4r-and-graylog/
Мы хотели, чтобы request_id (генерируемый rails и доступный на request.uuid
присутствовал во всех сообщениях в запросе. Для того, чтобы поместить его в журнал стойки (список параметров и временные параметры среди прочих), мы добавили его в MDC в промежуточном программном обеспечении стойки.
application.rb:
config.middleware.insert_after "ActionDispatch::RequestId", "RequestIdContext"
app/controllers/request_id_context.rb:
(по какой-то причине не удалось найти его в lib)
class RequestIdContext
def initialize(app)
@app = app
end
def call(env)
Log4r::MDC.get_context.keys.each {|k| Log4r::MDC.remove(k) }
Log4r::MDC.put("pid", Process.pid)
Log4r::MDC.put("request_id", env["action_dispatch.request_id"])
@app.call(env)
end
end
Если вы помещаете задания в отложенное задание / перезапуск, поместите request_id в очередь. и в вашем работнике снимите его и установите в MDC. Затем вы можете отслеживать запросы вплоть до