Rails: невозможно получить доступ к файлу журнала
-
08-07-2019 - |
Вопрос
Я получаю следующую ошибку при перезапуске моего приложения 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
? р>