Ruby on rails 如何从导轨内部设置机架环境变量

Ruby on rails 如何从导轨内部设置机架环境变量,ruby-on-rails,Ruby On Rails,rack cachegem依赖于@env['rack.errors']设置来记录错误消息: 78: # write log message to rack.errors 79: if verbose? 80: binding.pry 81: message = "cache: [%s %s] %s\n" % 82: [@request.request_method, @reques

rack cache
gem依赖于
@env['rack.errors']
设置来记录错误消息:

    78:       # write log message to rack.errors
    79:       if verbose?
    80:         binding.pry
    81:         message = "cache: [%s %s] %s\n" %
    82:           [@request.request_method, @request.fullpath, trace]
 => 83:         @env['rack.errors'].write(message)
    84:       end
它当前设置为
@env['rack.errors']#⇒ #

我需要将其更改为使用
Rails.logger
。显而易见的机会是侵入
rack cache
初始化器
RAILS\u cache.logger=…
。我想知道是否有一种从
Rails
访问
rack
环境的通用方法,比如(伪代码):


机架环境只能在请求上下文中访问,因此在控制器或视图中

访问您可以使用的环境

request.env['whatever']

修改机架环境时要小心,因为Rails堆栈的其他部分可能依赖它。

看看这篇文章是否有帮助@BryceJohnston我最终被迫编写自己的中间件,以覆盖覆盖默认
机架的最简单任务。错误
IO
。我希望有一些默认设置。当然,我能够连接我自己的中间件来入侵环境,但对我来说,这听起来既有黑客的味道,又过于工程化。在控制器中访问它对我来说毫无意义,因为我要覆盖默认的日志记录;在这个阶段还没有控制器。
request.env['whatever']