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

Rails:如何让puts语句在生产环境与开发环境均输出?

解决Rails生产环境中puts无法输出到日志的问题

嘿,这个场景我太熟悉了!在Rails里直接用puts确实只有开发环境的控制台能看到,生产环境因为服务器(比如Puma、Unicorn)的运行机制,puts的输出不会被捕获到正式日志里。要让你的自定义信息在生产和开发环境都能正常记录,得换用Rails内置的日志系统,具体做法如下:

  • 替换puts为Rails日志方法
    把你代码里的puts换成Rails.logger对应的日志级别方法,比如info、debug、warn等。以你的create方法为例,修改后应该是这样:

    def create
      Rails.logger.info "working on production and development"
    end
    

    这样不管是开发环境的控制台,还是生产环境的log/production.log文件,都会看到这条日志信息。

  • 调整生产环境的日志级别(可选)
    生产环境默认的日志级别通常是:info,如果你想用更细致的:debug级别记录信息,需要修改config/environments/production.rb里的配置:

    config.log_level = :debug
    

    改完后重启服务器,:debug级别的日志就会被写入生产日志了。

  • 为什么不用puts?
    生产环境中,服务器进程的标准输出(puts的输出)一般不会被定向到正式日志文件,可能会被丢弃或者混在服务器的启动日志里,不利于后续的问题排查。而Rails的logger是专门为日志管理设计的,能和日志轮转、监控工具更好地兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:56:38