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?

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top