通常,在rails应用中,将puts
或Rails.logger
输出数据写入控制台。但是,出于某种原因,当您介入生成lib
的代码时,写入这些流的任何内容都会被“吞噬”或其他内容 - 也就是说,它不会最终出现在stdout
上!有没有调试这个的策略?
谢谢,
答案 0 :(得分:1)
您可能是ActiveSupport::BufferedLogger
的受害者,它会缓存日志输出并在被要求时将其刷新。因为你没有要求它在你的lib
文件中这样做(提示:它会自动在控制器/模型中执行它/在请求中使用的任何内容),然后就不会这样做。
您需要做的就是告诉它您想在任何需要的地方进行操作:
Rails.logger.auto_flushing = true
然后,您可以将其他Rails.logger
方法调用到您心中。
答案 1 :(得分:0)
Logger在lib文件夹中的类中正常工作。但是,所有lib / *内容都不会自动重新加载,因此请确保在插入Rails.logger行后重新启动服务器。