【问题标题】:Ruby on Rails production loggingRuby on Rails 生产日志记录
【发布时间】:2014-03-12 14:50:31
【问题描述】:

Ruby on Rails 3.2

我的环境/production.rb 设置了config.log_level = :debug

当我控制台 cmd tail -f log/production.log 它显示:

root@name:/opt/RoR/name# tail -f log/production.log
Compiled jquery.ticker.js  (0ms)  (pid 19976)
Compiled jquery.nivo.slider.js  (0ms)  (pid 19976)
Compiled bootstrap.min.js  (0ms)  (pid 19976)
Compiled jquery-tablesorter/jquery.metadata.js  (0ms)  (pid 19976)
Compiled jquery-tablesorter/jquery.tablesorter.js  (0ms)  (pid 19976)
Compiled jquery-tablesorter/jquery.tablesorter.widgets.js  (0ms)  (pid 19976)
Compiled jquery-tablesorter.js  (10ms)  (pid 19976)
Compiled application.js  (74ms)  (pid 19976)
Compiled custom.css  (869ms)  (pid 19976)
Compiled application.css  (872ms)  (pid 19976)

它从不显示任何请求或其他任何内容。您如何查看日志?谢谢

编辑 乘客不应该在这里做点什么吗?在我的 nginx.conf 我有“passenger_enabled on;”

【问题讨论】:

  • 您确定这是正确的日志文件吗?运行您的应用程序的用户是否可写?如果你启动 rails console 会发生什么?
  • 只是一个健全性检查,您是否在生产模式下运行 rails 应用程序?
  • @Slicedpan 是的,应用程序正在生产模式下运行。开发模式日志没问题。
  • @tadman 生产 Rails 控制台工作正常。此外,如果我执行 'tail -f log/development.log' 它工作正常。
  • 执行chmod 777 /opt/RoR/dist_portal/log/production.log 看看是否可行 =)

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


【解决方案1】:

根据我上面的 cmets,我遇到了这个问题,并注意到 Rails 3.2+,如果我的记忆是正确的,它使用缓冲日志记录,这会延迟刷新。

继续观察一会儿,你应该会看到一些东西。或者,您可以将下面的代码添加到config/environments/production.rb

config.logger = ActiveSupport::TaggedLogging.new(
       Logger.new(Rails.root.join("log",Rails.env + ".log"),3, 5 * 1024 * 1024)
)

此外,正如@DDDD 在下面的评论中提到的,您可能希望确保 rails 具有写入记录器的正确权限。如果您遇到权限错误,请尝试以下操作:

chmod 755 /path/to/log/production.log

如果是这种情况,您想解决这个问题(更改所有权或目录组?),因为当上面的日志记录代码将日志拆分为多个文件时,问题可能会再次出现。

【讨论】:

  • 添加了更多信息...您可能想看看最近的编辑 =)