加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails记录器中包含参数/请求信息?

发布时间:2020-12-16 20:09:22 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的Rails日志中获取更多信息,特别是所请求的URI或当前参数(如果有的话),我感谢他们不会总是这样).但是我似乎似乎不能.这是我迄今为止做的: #config/environments/production.rbconfig.logger = Logger.new(config.log_path)config.log_level =
我正在尝试在我的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的基础?)

感谢负载,

解决方法

(在被问及后的很长一段时间内回应,可能会帮助下一个人)

我只是做了类似的事情.

1)您需要从记录请求详细信息中单独覆盖记录器.看起来你已经想到自定义你的记录器了.答案在这里:
Rails logger format string configuration

2)我将所有请求的请求和响应记录到我的服务中.请注意,Rails将一些东西放入标题中,因此直接转储请求或标题可能是一个坏主意.另外值得注意的是,我的应用程序主要通过API访问.如果你的主要是一个网络应用程序,因为我猜测大多数人是,你可能不想检查response.body,因为它将包含你的HTML.

class ApplicationController < ActionController::Base 
  around_filter :global_request_logging
...
  def global_request_logging 
    http_request_header_keys = request.headers.keys.select{|header_name| header_name.match("^HTTP.*")}
    http_request_headers = request.headers.select{|header_name,header_value| http_request_header_keys.index(header_name)}
    logger.info "Received #{request.method.inspect} to #{request.url.inspect} from #{request.remote_ip.inspect}.  Processing with headers #{http_request_headers.inspect} and params #{params.inspect}"
    begin 
      yield 
    ensure 
      logger.info "Responding with #{response.status.inspect} => #{response.body.inspect}"
    end 
  end 
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读