Pregunta

Me sale el siguiente error al reiniciar mi aplicación rails. He tenido este problema antes, en otro servidor con otra aplicación, pero no recuerdo cuál era el problema o cómo lo resolví.

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.

Estoy implementando en un clúster mestizo con capistrano en Ubuntu.

Cuando hago ls -l /apps/staging/releases/20090310162127/log/staging.log

el resultado es:

-rw-rw-rw- 1 me grp 51 Mar 10 16:07 /apps/staging/releases/20090310162127/log/staging.log

El directorio de registro es un enlace a / apps / staging / shared / log.

¿Qué está pasando?

¿Fue útil?

Solución

Resultó ser un error sutil de rieles:

Cuando se genera una excepción en estas dos líneas

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

rails supone que no puede encontrar el archivo de registro. Sin embargo, el error real ocurrió en la segunda línea: un NameError porque la constante es incorrecta. La razón es que había un nivel de registro heredado en mi archivo de configuración:

config.log_level = Logger::INFO

Rails 2.2 usa su propio registrador y no comprende la línea anterior.

Solución: eliminar línea o usar:

config.log_level = :info

Otros consejos

¿Rails se está ejecutando como me ? Si no, ¿a qué usuario se está ejecutando? ¿Es ese usuario jail 'ed? ¿Tiene el usuario permisos de recorrido para todos los componentes de / apps / staging / shared / log , así como todos los componentes de / apps / staging / releases / 20090310162127 / log ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top