Rails: Não é possível arquivo de log de acesso
-
08-07-2019 - |
Pergunta
Eu recebo o seguinte erro quando reiniciar o meu app rails. Eu tive esse problema antes, em outro servidor com outro aplicativo, mas não me lembro qual era o problema, ou como eu resolveu.
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.
Estou implantando um cluster vira-lata com Capistrano no Ubuntu.
Quando eu faço ls -l /apps/staging/releases/20090310162127/log/staging.log
O resultado é:
-rw-rw-rw- 1 me grp 51 Mar 10 16:07 /apps/staging/releases/20090310162127/log/staging.log
O log dir é um link
a / apps / staging / shared / log.
O que está acontecendo?
Solução
Ele acabou por ser um trilhos sutil erro:
Quando uma exceção é lançada nestas duas linhas
logger = ActiveSupport::BufferedLogger.new(configuration.log_path)
logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase)
trilhos assume que não consegue encontrar o arquivo de log. No entanto, o erro real ocorreu na segunda linha: um NameError porque a constante está incorrecta. A razão é que havia um nível de log legado no meu arquivo de configuração:
config.log_level = Logger::INFO
Rails 2.2 usa seu próprio logger, e não entende a linha acima.
Solução: linha de remover ou uso:
config.log_level = :info
Outras dicas
é Rails executando como me
? Se não, o usuário é executado como? É que o usuário jail
'ed? O usuário tem permissões de desvio para todos os componentes do /apps/staging/shared/log
, bem como todos os componentes de /apps/staging/releases/20090310162127/log
?