所有 Rails 应用程序日志都被写入 apache 错误日志

所有 Rails 应用程序日志都被写入 apache 错误日志

我已经将 ruby​​ on rails 4.0.3 应用程序部署到服务器上,该服务器已配置了以下可能相关的软件:

  • Ubuntu 12.04.4 x64 服务器
  • Phusion Passenger 4.0.37
  • Apache 2.2.22
  • Ruby 2.0.0p353
  • Rails 4.0.3 / Capistrano 2.15.5 / Rake 10.1.1

除 Rails 应用程序日志记录外,应用程序的所有功能似乎都运行正常。我的期望是,所有特定于应用程序的内容都应写入 {Rails.root}/log/production.log 文件。但是,所有内容似乎都写入了 /var/log/apache2/error.log。

下面是 apache error.log 的摘录,用来说明我的意思:

App 1495 stdout: Started GET "/" for 192.168.1.106 at 2014-03-08 17:26:04 -0500
App 1495 stdout: Processing by HomeController#index as HTML
App 1495 stdout:   Rendered home/index.html.erb within layouts/application (0.1ms)
App 1495 stdout:   Rendered layouts/_header.html.erb (2.0ms)
App 1495 stdout:   Rendered home/_auth.html.erb (0.4ms)
App 1495 stdout:   Rendered layouts/_footer.html.erb (0.1ms)
App 1495 stdout: Completed 200 OK in 9ms (Views: 5.8ms | ActiveRecord: 0.0ms)

我发现有趣的是,log/production.log 甚至被创建了,但却没有任何内容被写入其中。

我调查过/验证过的一些事情:

  • RAILS_ENV=生产
  • {Rails.root}/config/environments/production.rb 设置为所有默认值
  • 我的 apache/passenger 设置大部分是默认的,除了必须为我的应用程序添加虚拟主机条目,如下所示:
<VirtualHost *:80> 
        ServerAdmin webmaster@localhost 
        DocumentRoot /var/www/apps/myapp/current/public 
        RailsEnv production  
</VirtualHost>
  • rails 应用程序中所有文件的权限似乎都很好——无奈之下,我尝试向 log/production.log 授予“777”权限,但无济于事。

我很乐意根据要求提供任何其他应用程序配置信息或环境详细信息。

答案1

我遇到过类似的情况。在我的例子中,#{Rails.root}/config.ru包含了行use Rails::Rack::LogTailer。这导致所有 Rails 日志也被添加到/var/log/apache2/error.log

相关内容