Ruby on rails Rails:无法访问日志文件

Ruby on rails Rails:无法访问日志文件,ruby-on-rails,linux,capistrano,mongrel,Ruby On Rails,Linux,Capistrano,Mongrel,重新启动rails应用程序时出现以下错误。我以前在使用另一个应用程序的另一台服务器上遇到过这个问题,但不记得是什么问题,也不记得我是如何解决的 Rails Error: Unable to access log file. Please ensure that /apps/staging/releases/20090310162127/log/staging.log exists and is chmod 0666. The log level has been raised to WARN a

重新启动rails应用程序时出现以下错误。我以前在使用另一个应用程序的另一台服务器上遇到过这个问题,但不记得是什么问题,也不记得我是如何解决的

Rails Error: Unable to access log file. Please ensure that /apps/staging/releases/20090310162127/log/staging.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
我正在Ubuntu上部署一个带有capistrano的混合集群

当我执行ls-l/apps/staging/releases/20090310162127/log/staging.log时

结果是:

-rw-rw-rw- 1 me grp 51 Mar 10 16:07 /apps/staging/releases/20090310162127/log/staging.log
日志目录是指向/apps/staging/shared/log的
链接


发生什么事了

Rails是否作为
me
运行?如果不是,它是作为什么用户运行的?那个用户被关进监狱了吗?用户是否对
/apps/staging/shared/log
的所有组件以及
/apps/staging/releases/20090310162127/log
的所有组件都具有遍历权限?

这是一个微妙的rails错误:

在这两行中引发异常时

logger = ActiveSupport::BufferedLogger.new(configuration.log_path)
logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase)
rails假定它找不到日志文件。但是,实际的错误出现在第二行:由于常量不正确,因此出现了NameError。原因是我的配置文件中存在旧的日志级别:

config.log_level = Logger::INFO
Rails 2.2使用自己的记录器,不理解上面的内容

解决方案:移除管线,或使用:

config.log_level = :info

是的,它是以“我”的名字运行的,不知道“监狱”是什么意思。是的,所有dir组件都是可遍历的。releases/20090310162127可能是通过一个链接(称为current)访问的。@Michiel,jailed意味着出于安全原因,/被重新映射到一个特殊目录。你能确认如果你“su-me”和“touch/apps/staging/releases/20090310162127/log/staging.log”你没有收到错误,对吗?有趣的是,我应该调查一下。但错误消息完全是误导性的-与日志文件无关。很高兴知道。我想我自己也曾遇到过这个问题。我在切换邮件程序和日志程序命令时遇到了这个问题:config.log_level=:sendmail D'oh!谢谢,我一直认为这是一个VirtualBox错误。我得到了一个类似的错误,没有第二个错误。原来
capdeploy
正在创建
share\log
作为根目录,rails无法生成日志文件。非常感谢,这是有史以来最具误导性的错误消息。谢谢你弄明白了。