gpt4 book ai didi

ruby-on-rails - Rails 日志中的完整 URL

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:49 24 4
gpt4 key购买 nike

是否可以在 Rails 应用程序的日志中获取完整的 URL?目前我得到类似的东西:

Started GET "/" for 127.0.0.1 at 2011-08-27 13:13:10 +0200

但我需要得到:

Started GET "http://localhost:3000/" for 127.0.0.1 at 2011-08-27 13:13:10 +0200

因为这是一款域名很重要的应用。

最佳答案

该行来自中间件 Rails::Rack::Logger ,这是在 railties 中。最简单的情况是,您可以覆盖执行日志记录的方法,例如,在初始化程序中:

class Rails::Rack::Logger < ActiveSupport::LogSubscriber
protected

def before_dispatch(env)
request = ActionDispatch::Request.new(env)
info "\n\nStarted #{request.request_method} \"#{request.url}\" for #{request.ip} at #{Time.now.to_default_s}"
end
end

如果您不想覆盖记录器,您可以随时添加您自己的记录器,您已经创建了它,然后通过以下方式从堆栈中删除 Rails::Rack::Logger:

config.middleware.insert_before(Rails::Rack::Logger, YourLogger)
config.middleware.delete(Rails::Rack::Logger)

如果你走这条路,你可能会检查 rack logger 以了解它对 ActionDispatch::Request 的使用,并确保完成它所做的其他工作,即在发送后刷新日志订阅者缓存,通过 ActiveSupport::LogSubscriber.flush_all!

关于ruby-on-rails - Rails 日志中的完整 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7214166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com