我试图在我的Rails日志中获取更多信息,特别是请求的URI或当前参数,如果可用的话(我们知道不总是有)。然而,我似乎做不到。这是我迄今为止所做的:
#config/environments/production.rb
config.logger = Logger.new(config.log_path)
config.log_level = :error
config.logger.level = Logger::ERROR
#config/environment.rb
class Logger
def format_message(level, time, progname, msg)
"**********************************************************************\n#{level} #{time.to_s(:db)} -- #{msg}\n"
end
end
我可以很好地自定义消息,但似乎无法在此处访问params / request变量。有人知道是否可能,如果可能的话该怎么做?或者是否有更好的方法来获取这些信息?(也许是基于Redis的东西?)
非常感谢,
Dan
request.headers
更改为request.headers.env
时,它才对我起作用(我正在使用Rails 4)。提出了编辑建议。 - Medeiros("^HTTP.*")
改为(/^HTTP.*/)
,但我也很好奇为什么你只匹配以 HTTP 开头的标头,除了说 Rails 添加了许多标头之外。Rails 没有添加的所有标头都以 HTTP 开头吗? - 0xtobitString#match
可以使用以下任一语法 https://ruby-doc.org/core-2.4.0/String.html#method-i-match。是的,Rails 在其中放了很多实际上不会传输到网络的东西。当时,我并不知道客户端发送的标头中是否有未带 HTTP 前缀的内容。结果因人而异。 - John Hinnegan