gpt4 book ai didi

ruby-on-rails - 更改单个 Controller 的日志级别或 rails 中的操作

转载 作者:行者123 更新时间:2023-12-05 03:15:48 25 4
gpt4 key购买 nike

我们正在 haproxy 后面运行一个 Rails 项目。每秒向应用程序发送一个 keep-alive。这会导致非常嘈杂的日志文件,这使得挖掘起来有点痛苦,并且使它们变得不必要地大。

我的第一个想法是将该操作的日志记录级别更改为调试,但其他人建议更改 around_filter 中的日志记录级别。我对这个想法并不着迷,但这可能就是我实现它的方式。我对不同的解决方案持开放态度,但一般要求是我可以停止这些操作,但如果出于任何原因需要查看它们,我可以更改日志记录级别。

最佳答案

另一种解决方案是插入一些 Rack 中间件,它在进入 Rails ApplicationController 生命周期之前处理 keep-alive 检查。

第 1 步:制作一些响应 keep-alive 检查的中间件。在我的例子中,保持事件请求是一个 GET/health-check 所以它看起来像:

class HealthCheckMiddleware
def initialize(app)
@app = app
end

def call(env)
if env['PATH_INFO'] == '/health-check'
return [200, {}, ['healthy']]
end
@app.call(env)
end
end

当然,根据需要调整此健康检查。也许您需要检查其他请求/CGI 变量...

第 2 步:确保在 Rails::Rack::Logger 之前插入此中间件:

config.middleware.insert_before Rails::Rack::Logger, "HealthCheckMiddleware"

现在您的中间件将处理健康检查并且您的日志已被完全绕过。

关于ruby-on-rails - 更改单个 Controller 的日志级别或 rails 中的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10081971/

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