我整天都在寻找解决方案,但结果很短……很高兴有任何见解。提前致谢。
问题:log/production.rb 文件存在,但在生产 Rails 4.0 环境中为空。log/development.rb 在开发 Rails 4.0 环境中符合预期。
一点背景知识:使用 Rails 4、Ruby 2.0.0-p247、Capistrano 3.0.1、Unicorn 4.7.0 和 nginx 1.4.1。
应用程序根和权限:
drwxrwsr-x 13 deployer deployer 4096 2013-11-10 21:30 ./
drwxrwsr-x 7 deployer deployer 4096 2013-11-10 21:30 ../
drwxrwsr-x 8 deployer deployer 4096 2013-11-10 21:31 app/
-rw-rw-r-- 1 deployer deployer 2015 2013-11-10 21:30 assets_manifest_backup
drwxrwsr-x 2 deployer deployer 4096 2013-11-10 21:31 bin/
drwxrwsr-x 2 deployer deployer 4096 2013-11-10 21:30 .bundle/
-rw-rw-r-- 1 deployer deployer 473 2013-11-10 21:31 Capfile
drwxrwsr-x 6 deployer deployer 4096 2013-11-10 21:30 config/
-rw-rw-r-- 1 deployer deployer 154 2013-11-10 21:31 config.ru
drwxrwsr-x 3 deployer deployer 4096 2013-11-10 21:31 db/
-rw-rw-r-- 1 deployer deployer 1378 2013-11-10 21:31 Gemfile
-rw-rw-r-- 1 deployer deployer 3418 2013-11-10 21:31 Gemfile.lock
-rw-rw-r-- 1 deployer deployer 488 2013-11-10 21:31 .gitignore
drwxrwsr-x 5 deployer deployer 4096 2013-11-10 21:31 lib/
drwxrwsr-x 2 deployer deployer 4096 2013-11-10 21:30 log/
drwxrwsr-x 2 deployer deployer 4096 2013-11-10 21:30 public/
-rw-rw-r-- 1 deployer deployer 249 2013-11-10 21:31 Rakefile
-rw-rw-r-- 1 deployer deployer 3165 2013-11-10 21:31 README.md
drwxrwsr-x 8 deployer deployer 4096 2013-11-10 21:31 test/
drwxrwsr-x 3 deployer deployer 4096 2013-11-10 21:30 tmp/
drwxrwsr-x 3 deployer deployer 4096 2013-11-10 21:31 vendor/
所以我知道 log 与其他目录具有相同的权限。
我在 config/environments/production.rb 中没有任何神奇之处,因为我认为 Rails 会为我隐式地在生产环境中创建日志。我将 config.log_level 设置为 :info。(特别是因为日志在开发环境中工作。)
显然,考虑到环境的变化,这个问题必须与 /log 权限或我在 Rails 配置中明显缺失的东西有关。
在设置 Capistrano 3 进行部署时,我使用了 deploy_to 路径的推荐权限(http://www.capistranorb.com/documentation/getting-started/authentication-and-authorisation/)。他们想要 chmod -R g+s $deploy_to,所以我想知道这是否对日志生成有任何影响。
我对任何解决方案持开放态度,但更愿意坚持使用内置的 Rails 日志而不是使用其他东西。
再次感谢!
更新:添加set :linked_dirs, %w{... log ...}
到 config/deploy.rb 后,日志的权限似乎是准确的,因为我现在在 log/unicorn.log 中获得了 unicorn stdout 和 stderr。
该问题似乎与我的独角兽设置有关,因为我无法成功重新启动或重新加载工作人员。
Capistrano 链接目录后的 app_root/log 的内容(上图):
drwxr-sr-x 2 deployer deployer 4096 2013-11-11 06:23 ./
drwxrwsr-x 9 deployer deployer 4096 2013-11-11 06:20 ../
-rw-r--r-- 1 deployer deployer 0 2013-11-11 06:20 production.log
-rw-r--r-- 1 deployer deployer 11570 2013-11-11 07:09 unicorn.log