【问题标题】:Rails logging in Production Environment生产环境中的 Rails 日志记录
【发布时间】:2012-03-05 11:02:40
【问题描述】:

在 rails 3.2 的默认生产环境中,我应该在 production.log 中看到什么样的信息?

我正在运行 Passenger 并尝试访问虚构的控制器名称和无效参数,但 production.log 中没有显示任何内容。

我尝试在环境/production.rb 中将记录器级别设置为调试,但该日志仍然是空白的。

谢谢

编辑

以下是有关冲洗问题的更多信息:

https://github.com/rails/rails/issues/4277

【问题讨论】:

  • 我最近也遇到了同样的情况。 Rails 3.2.1 + 最新乘客。
  • 肯定会在(当前)最新的 3.2.11 中修复。在我的情况下,通常是在 Capistrano 部署之后,Apache 乘客没有任何权利写信给log/ 所以chmod -R 0777 current/log 来救援。

标签: ruby-on-rails logging passenger


【解决方案1】:

似乎是因为日志文件刷新。默认情况下,rails 不会刷新每次写入以登录生产环境。

This pull request 修复它,在 rails HEAD 你可以试试

config.autoflush_log = true

【讨论】:

  • 那行在哪里? Production.rb?
  • 嗯,是的,在 config/environments 中你想要的环境文件中
【解决方案2】:

您可能需要通过创建初始化程序将Rails.logger 设置为ActiveSupport::Logger

检查Rails.logger 的值,如果显示<RailsStdoutLogging::StdoutLogger:,请将其更改为主动支持。

config/initializer/logger.rb 

Rails.logger = ActiveSupport::Logger.new('log/production.log')

编辑:我尝试在production.rb 中使用config.logger 做同样的事情,但它总是被覆盖。所以我决定采用这种方法。

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 2019-07-21
    • 2017-10-18
    • 2015-10-30
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多