轻量级服务器:将Rails应用程序日志输出到控制台,就像“rails s”一样。

9

我需要在Rails应用程序的根目录下运行thin startthin -ssl ... start,并将应用程序日志输出到控制台,类似于rails s

2个回答

26
在位于您应用程序根目录下的config.ru文件中,在run Rails.application行之前添加以下代码:
console = ActiveSupport::Logger.new($stdout)
console.formatter = Rails.logger.formatter
console.level = Rails.logger.level

Rails.logger.extend(ActiveSupport::Logger.broadcast(console))

1
但这将影响所有环境,并很可能污染生产机器日志。我在开发中使用thin,因为它比Webbrick更快,是否可能仅针对此环境进行目标设置? - Cyril Duchon-Doris
3
只需将上述代码放在 if Rails.env.development? 语句块中即可。 - Benj
@Benj 这是SO上提供的最棒的答案。我从来没有想过这是可能的。现在我使用thin有了丰富多彩的调试输出,非常感谢你。 - W.M.

2

确保你的config/environments/development.rb文件已配置为打印日志,如果没有,你可以在那里添加这些行,不要忘记重新启动Rails服务器。

logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接