You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 6如何关闭请求产生的INFO级别Started开头日志

Rails 6 屏蔽Started *格式请求日志的方案

你提到的这类Started *格式的INFO级日志是Rack内置的Rack::Logger中间件输出的,和Puma无关,可通过以下两种方案实现屏蔽:


方案1:完全移除请求起始日志(推荐,适配你的需求)

如果不需要所有这类请求起始记录,直接在Rails配置中移除Rack::Logger中间件即可,操作如下:

  • 选择对应生效范围的配置文件:
    • 所有环境生效:修改config/application.rb
    • 仅生产环境生效:修改config/environments/production.rb
  • 在配置类的内部添加代码:
config.middleware.delete(Rack::Logger)
  • 重启Rails服务后即可生效。

注意:该操作仅会关闭请求起始、结束的基础访问日志,不会影响Rails自身的错误日志、自定义业务日志的输出。


方案2:保留其他INFO日志,仅过滤Started *行

如果你不想移除中间件,仅需要屏蔽这一类日志,可以自定义日志格式化器过滤匹配内容:

  • 在config/initializers目录下新建log_silencer.rb文件,写入如下代码:
Rails.application.config.after_initialize do
  original_formatter = Rails.logger.formatter || Logger::Formatter.new

  Rails.logger.formatter = ->(severity, timestamp, progname, message) do
    # 匹配INFO级别且以Started开头的日志,直接返回空字符串过滤
    return '' if severity == 'INFO' && message.to_s.start_with?('Started ')
    original_formatter.call(severity, timestamp, progname, message)
  end
end
  • 重启Rails服务后生效,其他INFO级日志会正常输出,仅目标日志被拦截。

如果你的项目使用了lograge这类第三方日志优化gem,直接开启gem的默认配置就会自动屏蔽Rack默认的请求日志,无需额外配置。

内容的提问来源于stack exchange,提问作者Himberjack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:36:01