- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
Heroku 推出了一个 new labs feature for tracking http-request-id从它的路由器。
一些有用的背景知识:Rails 3.2 推出了一个带有 TaggedLogger 的功能到 include a unique request ID into the logs , 这样您就可以跟踪给定日志行属于哪个 Web 请求。这在运行多个将日志流式传输到同一个日志存储的 Web 服务器时非常重要,例如这与 Heroku 或 Unicorn 设置等上的多个测功机很常见。
现在,借助 Heroku 的实验室功能,Heroku 路由器将生成此请求 ID,以便您可以在请求进入应用程序之前从路由器级别跟踪该请求。这很重要,例如如果由于超时等原因导致请求未能完成
不幸的是,Heroku 没有为此选择标准的请求 header key ,HTTP_X_REQUEST_ID
,Rails 会接受并通过它,而是创建了一个自定义的,HTTP_HEROKU_REQUEST_ID
,未经修改,Rails 将不会通过。 Heroku,为什么会偏离这里的惯例?
因此,我有两个选择:用使用 Heroku header 键的复制和粘贴作业替换 Rails 默认的 RequestId
中间件,或者对 Rails 中间件进行猴子修补。我不喜欢复制和粘贴工作,因为它们不是 DRY 并且很容易变得陈旧,让 monkey patch 成为更好的选择。但是,如何解决这个问题?
我尝试添加一个文件 config/initializers/middleware.rb
:
module ActionDispatch
class RequestId
private
def external_request_id(env)
if request_id = env["HTTP_X_REQUEST_ID"].presence || env['HTTP_HEROKU_REQUEST_ID'].presence
request_id.gsub(/[^\w\-]/, "").first(255)
end
end
end
end
但这并没有被执行。我该如何修补它?
最佳答案
有一个解决方案!我刚刚将它添加到我的 production.rb 中并且它有效!
config.log_tags = [lambda {|req| req.env['HTTP_HEROKU_REQUEST_ID']}]
归功于 https://stackoverflow.com/a/10712252/2422778和 Railscasts
编辑
只是想指出,截至 2014 年 1 月 17 日,Heroku 已修复请求 ID header 名称,现在是
env['HTTP_X_REQUEST_ID']
关于ruby - 如何修补 RequestId 中间件或为什么 Heroku 不使用标准的 HTTP_X_REQUEST_ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15796685/
我正在使用 golang 编写一个网络应用程序。我是这种语言的新手。我试图找到在 golang webapp 中记录 requestid 的最佳方法。我决定使用 go 的日志库 ( https://g
我正在尝试将 requestId 添加到我的网络应用程序的日志中,如图所示 here . public class MDCFilter implements ContainerRequestFilte
我在放入数据库的新创建对象的 id 上收到此空指针异常,即使它应该是自动生成的。 @Entity @Table(name = "REQUEST") @EntityListeners(DatabaseL
chrome.webRequest API 具有请求 ID 的概念(来源:Chrome webRequest documention): Request IDs Each request is ide
我们正在尝试加密我们的有效负载并移动任何不应加密的内容。 到目前为止,这些是我们确定不加密的属性。 -- event.requestContext.requestId -- event.request
Heroku 推出了一个 new labs feature for tracking http-request-id从它的路由器。 一些有用的背景知识:Rails 3.2 推出了一个带有 Tagged
使用 AWS SES 电子邮件验证,在验证电子邮件后,我从响应中得到一个 RequestId。我试图找到一种方法来获取 RequestId 我无法找到可以为我提供此 RequestId 状态更新的端点
我正在开发一个带有 Mpesa 支付模块的 Android 应用程序。我已经能够在媒介上生成本教程指导的 STKPush:https://medium.com/@lentimo/m-pesa-inte
我正在 Google Chrome 扩展中进行开发。在这种环境下,我有能力在请求适当的权限后将 JavaScript 注入(inject)第三方网站。因此,我将代码注入(inject)到引用跨域资源的
我使用 netcore2.0 并在我的中间件类中为每个请求设置 log4net.LogicalThreadContext 属性“requestid”以进行日志记录。 log4net.LogicalTh
我有以下代码用于根据服务调用的响应显示/隐藏成功 div,并且我需要将服务响应的请求传递给成功 Div。如何传递 requestId 并显示成功 div? Success
我想通过 angular2 将文件存储到 azure blob 数据。这样我就创建了一个名为“mysampleoxy”的存储 然后在blob下创建了一个容器“videos”。现在我想将文件从本地服务器
我想通过 angular2 将文件存储到 azure blob 数据。这样我就创建了一个名为“mysampleoxy”的存储 然后在blob下创建了一个容器“videos”。现在我想将文件从本地服务器
我是一名优秀的程序员,十分优秀!