一尘不染

Rails:无法访问日志文件

linux

重新启动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的目录。

这是怎么回事?


阅读 383

收藏
2020-06-03

共1个答案

一尘不染

原来是一个细微的错误:

当这两行引发异常时

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
2020-06-03