【问题标题】:Rails Logger appears to be duplicating log linesRails Logger 似乎在重复日志行
【发布时间】:2013-11-22 21:14:42
【问题描述】:

我对 Rails 记录器感到好奇。

当我在代码中插入 Rails.logger.info("Some text") 时,通常是为了跟踪流程,我在控制台中得到两行“Some text”输出。

这通常不是什么大问题,但是当我转储较大对象的内容时,输出会变得很麻烦。

在我升级到 Rails 4 之前,这似乎从未发生过,或者至少,我不记得它发生过。

有谁知道这里发生了什么,是否有办法停止复制日志输出?

【问题讨论】:

  • 可能是该行执行了两次,仔细检查执行流程。或者通过将同一行放在另一个位置来测试它。
  • 这不是应该的样子。搜索您配置记录器的位置并将其发布在此处。
  • 这不是执行流程,如果我在同一方法中有两个或多个日志记录语句,则在调用每个日志记录语句时会生成两行。因此,我将按顺序查看 2x 日志第 1 行、2x 日志第 2 行、2x 日志第 3 行,依此类推。
  • phoet,我还没有进行任何记录器配置。只需使用标准 Rails.logger 输出到控制台。

标签: ruby-on-rails logging ruby-on-rails-4


【解决方案1】:

尝试将 rails_12factor gem(如果已安装)移至生产组。

group :production do
  gem 'rails_12factor'
end

【讨论】:

  • 太棒了!这不仅解决了重复行问题,而且彩色日志终于可以工作了... # Gemfile group :production do gem 'rails_12factor' end
  • 谢谢!像魅力一样工作。
  • gem 'rails_12factor',组::生产
  • 上帝保佑你!好烦
  • 你怎么知道这是问题所在?
【解决方案2】:

这个小解决方法解决了我的问题。请按以下步骤操作:

在 Rails 外部库下,搜索 railties 模块。转到这个路径:/lib/commands/server.rb

在这个文件中注释这一行,Rails.logger.extend(ActiveSupport::Logger.broadcast(console))

这个命令会关闭广播,然后重启你的 Rails 服务器。您将不会再看到任何重复的日志。编码愉快。

有关更多信息,请查看 Rails 的此问题页面: https://github.com/heroku/rails_stdout_logging/issues/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2012-06-19
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多