Rails: невозможно получить доступ к файлу журнала - PullRequest
14 голосов
/ 11 марта 2009

Я получаю следующую ошибку при перезапуске моего приложения 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.

Когда я делаю 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.

Что происходит?

Ответы [ 2 ]

27 голосов
/ 11 марта 2009

Оказалось, тонкая ошибка рельсов:

Когда в этих двух строках возникает исключение

logger = ActiveSupport::BufferedLogger.new(configuration.log_path)
logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase)

rails предполагает, что не может найти файл журнала. Однако фактическая ошибка произошла во второй строке: ошибка NameEr, поскольку константа неверна. Причина в том, что в моем файле конфигурации был устаревший уровень журнала:

config.log_level = Logger::INFO

Rails 2.2 использует свой собственный регистратор и не понимает вышеприведенную строку.

Решение: удалить строку или использовать:

config.log_level = :info
0 голосов
/ 11 марта 2009

Rails работает как me? Если нет, то от какого пользователя он работает? Это пользователь jail 'ed? Имеются ли у пользователя права доступа для всех компонентов /apps/staging/shared/log, а также для всех компонентов /apps/staging/releases/20090310162127/log?

...