Вопрос

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

Директория журнала - это ссылка на / apps / staging / shared / log.

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

Это было полезно?

Решение

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top