14

重新启动我的 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

日志目录是link/apps/staging/shared/log 的一个目录。

这是怎么回事?

4

2 回答 2

27

原来是一个微妙的 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
于 2009-03-11T00:56:52.977 回答
0

Rails 是否运行me?如果不是,它以什么用户身份运行?是那个用户jail吗?/apps/staging/shared/log用户是否对 的所有组件以及 的所有组件具有遍历权限/apps/staging/releases/20090310162127/log

于 2009-03-10T23:05:33.553 回答